Javaでは、HashMapに次のような形式のデータを完全に入力します。
HashMap<Integer, int[]> map = new HashMap<Integer, int[]>(1000000, 1);
ランダムキーの存在をチェックするときに何が速いか、たとえば100:
if (map.get(100) == null))
または
if (!map.containsKey(100))
?
質問は、マイクロ最適化の観点から興味深いものです。
実際、両方のアプローチは同じです。 Java.util.HashMap
ソースコードを見ると、次のcontainsKeyの実現が見つかります。
public boolean containsKey(Object key) {
return getEntry(key) != null;
}
この2つは、map.get(key)
がキーの場合にreturn
を返す場合があることを除いて、null
タイプのみが異なりますが、map.containsKey(key)
はboolean
を返します。これは、 map.get(key)
null
を返します。
この2つのアプローチに違いはありません。主な違いは、次に何をするかだけです。値が必要な場合は、もちろん、取得することで値を取得できます。