0

現在、Blackberryアプリケーションに永続ストレージオブジェクトを実装しています。
設定オブジェクトのベクトルが含まれています。

特定の設定値を取得するための現在の実装は次のようになります

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

列挙をループするよりも、その値にアクセスするためのより良い方法はありますか?

ありがとう!

4

1 に答える 1

2

ベクトルは基本的には拡張可能な配列であるため、特定の要素を見つけるにはベクトルを検索する必要があります。ベクトルがソートされていることを確認できます。これにより、バイナリ検索を実行できます。コードの複雑さに対するパフォーマンスのわずかな向上を正当化するのに十分な要素がベクトルに含まれる可能性は低いため、ここで大きな違いが生じるとは思えません。

ただし、キーを値にマップできるようにしたいようです。その場合、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");
于 2009-07-11T13:19:42.330 に答える