同じハッシュコードを持つ 2 つの Java オブジェクトは必ずしも等しいとは限りませんか? 質問する

同じハッシュコードを持つ 2 つの Java オブジェクトは必ずしも等しいとは限りませんか? 質問する

2 つの等しい ( を通じてequals) オブジェクトに同じハッシュコードを提供することが重要である理由は理解しています。しかし、その逆も同様で、2 つのオブジェクトが同じハッシュコードを持つ場合、それらは等しくなければなりませんか? 契約は依然として有効ですか? これが発生する可能性がある例は見つかりません。equals メソッドに参加しているすべての属性がハッシュコード メソッドもオーバーライドするために使用されている場合、等しいオブジェクトのハッシュコードは常に同じになるためです。コメントをお願いします。

ベストアンサー1

2 つのオブジェクトが同じ値を持つ場合hashcode、必ずしも等しいとは限りません。そうでない場合は、完璧なハッシュ関数を発見したことになります。

しかし、その逆も真です。つまり、オブジェクトが等しい場合は、それらは同じ を持つ必要がありますhashcode

おすすめ記事