J2ME从Vector获取特定对象

时间:2009-07-11 13:02:21

标签: java java-me vector enumeration

目前我正在为我的Blackberry应用程序实现一个Persistant存储对象 它包含一个设置对象的向量。

我目前获得特定设置值的实现如下所示

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;
}

是否有更好的方法来访问该值而不是循环枚举?

谢谢!

1 个答案:

答案 0 :(得分: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");