1. ホーム
  2. java

[解決済み] HashMapのキー存在チェック

2022-03-16 18:22:05

質問

HashMapのキー存在チェックは常に必要ですか?

1000項目程度のHashMapがあり、効率化を検討しています。 HashMapが非常に頻繁にアクセスされる場合、アクセスのたびにキーの存在をチェックすると、大きなオーバーヘッドにつながります。その代わり、もしキーが存在しないために例外が発生した場合、その例外をキャッチすることができる。(めったに起きないとわかっている場合)。これでHashMapへのアクセスは半分くらいになる。

これは良いプログラミング方法ではないかもしれませんが、アクセス回数を減らすのに役立ちますね。それとも、私はここで何かを見逃しているのでしょうか?

[ 更新情報 ] HashMapにNULL値を入れていない。

どうすればいいですか?

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