2009-07-11 90 views
0

目前我正在爲我的黑莓應用程序實現持久存儲對象。
它包含一個設置對象的向量。J2ME從Vector獲取特定對象

我當前的實現來獲得特定的設置值看起來像這樣

public String getSettingByName(String key) 
{ 
    String value = ""; 
    for (Enumeration e = _appSettings.elements(); e.hasMoreElements();) 
    { 
     if(((AppSettingsObject)e.nextElement()).get_key() == key) 
     { 
      value = ((AppSettingsObject)e.nextElement()).get_value(); 
     } 
    } 
    return value; 
} 

有沒有更好的方式來訪問比循環的枚舉值?

謝謝!

回答

2

Vector基本上只是一個可增長的數組,因此您必須通過搜索來查找任何特定元素。您可以確保向量被排序,這將允許您執行二進制搜索。我懷疑它會在這裏產生很大的變化,因爲你的向量中似乎不太可能有足夠的元素來證明在代碼複雜性上性能的輕微增加。

但是,您似乎希望能夠將鍵映射到值。在這種情況下,java.util.Hashtable類可能會更好:

Hashtable appSettings = new Hashtable(); 

appSettings.put("key1", "value1"); 
appSettings.put("key2", "value2"); 

String value1 = (String)appSettings.get("key1"); 
String value2 = (String)appSettings.get("key2"); 
+0

偉大的事情,您對開銷/管理開銷比較有什麼選擇? – 2009-07-11 13:28:42