JavaのMapを使用するときの注意

  • 更新日:
  • Java
  • API

これはAPI上でも書かれていることですが、敢えてメモしておきます。

Mapで使用するキーは、hashCode()とequals(Object)を使用して同一かどうかを判定します。なので、equals(Object)でtrueを返すオブジェクトは、hashCode()も同一である必要があります。ただし、逆はそうでなくてもよくて、hashCode()が同一でも、equals(Object)がtrueを返さなければならないわけではありません。

もし、この規約が守られない場合は、キーとして使用するのは不適格です。なぜなら、Map中のエントリーと比較するときは、hashCode()が同一であるかどうかを調べてから、equals(Object)で調べるからです。hashCode()がオーバーライドされない場合、equals(Object)がtrueであっても、異なるオブジェクトとして認識されてしまい、Mapとしての機能を果たしません。

Track Back

Track Back URL

コメントする

公開されません

refresh captcha

画像の中に見える文字を入力してください。

このページの上部へ

About

tetsuの日記・雑記です。
日々経験したことを記録していきます。

広告

サイト内検索

最近のピクチャ

  • リアディレーラ

月別アーカイブ

最近のコメント