2009-07-11 87 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