5

これは、メモリと計算の両方の観点から(key、value)ペアにアクセスするためのより効率的な方法です。properties.getProperty( "key")を使用してプロパティファイルから読み取るか、プロパティファイル全体をHashMapにロードします。プログラムしてから、HashMapでキーを探しますか?

また、プロパティの値の1つだけを繰り返し使用する場合は、値をメンバー変数に格納してアクセスするか、properties.getProperty( "key")を使用して毎回検索する方がよいでしょうか。

4

2 に答える 2

15

properties.getProperty("key")PropertiesオブジェクトであるHashtableからのルックアップです。これを行うときはProperties.load()、ファイルからエントリをロードし、Hashtableを拡張するPropertiesオブジェクトに格納します。プロパティへの後続のすべてのアクセスは、ハッシュテーブルでルックアップを実行します。ファイルIOはもうありません。

もちろん、メンバー変数へのアクセスは、HashMapのキーから値にアクセスするよりもわずかに高速ですが、ここでパフォーマンスに重要なものが得られるとは思えません。HashMapルックアップはO(1)であり、非常に高速です。違いに気付く前に、おそらく何百万ものルックアップが必要になるでしょう。あなたにとって最も読みやすいことをしてください。

于 2012-05-25T14:59:07.103 に答える
1

実際には内部でオブジェクトSystem.getProperty()を使用します。クラスは拡張さjava.util.Propertiesれるため、代わりに明示的に使用しても、souが多くのパフォーマンスを得る可能性は低くなります。PropertiesHashTable<Object,Object>HashMap

ただし、少数のプロパティを頻繁に使用する場合は、これらを変数に格納すると確かに役立ちます。HashTable / HashMapルックアップと変数アクセスはどちらもO(1)である可能性がありますが、HashTableルックアップには間違いなくはるかに大きな定数係数があります。

于 2012-05-25T15:04:41.333 に答える