HashMap 内のキーの存在を確認することは常に必要ですか?
たとえば 1000 エントリの HashMap があり、効率を改善したいと考えています。HashMap が非常に頻繁にアクセスされる場合、アクセスのたびにキーの存在を確認すると、大きなオーバーヘッドが発生します。代わりに、キーが存在せず例外が発生した場合は、例外をキャッチできます (これがまれにしか発生しないことがわかっている場合)。これにより、HashMap へのアクセスが半分に削減されます。
これは良いプログラミング方法ではないかもしれませんが、アクセス回数を減らすのに役立ちます。それとも、何か見落としているのでしょうか?
[更新] HashMap に null 値がありません。
ベストアンサー1
null 値を保存したことがありますか? そうでない場合は、次のようにします。
Foo value = map.get(key);
if (value != null) {
...
} else {
// No such key
}
それ以外の場合は、null 値が返された場合にのみ存在をチェックできます。
Foo value = map.get(key);
if (value != null) {
...
} else {
// Key might be present...
if (map.containsKey(key)) {
// Okay, there's a key but the value is null
} else {
// Definitely no such key
}
}