2016-10-12 6 views
-1

現在、私は楽しみのためにJSEのソースコードを掘り下げました。いくつかのチュートリアルから私は原理two equals objects (i.e. as to object a and b a.equals(b) returns true) must have the same hashcode, on the other hand, two objects with the same hashcode are not necessarily equalsを見つけました。 Java APIのハッシュテーブルソースコード(http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Hashtable.java)によると、 254行を参照してください、私たちはほぼequals => same hashcodeを得ることができますが、私はまだ完全に理解できませんtwo objects with the same hashcode are not necessarily equals。誰でもこれについてもっと推論をすることができますか?事前に感謝同じハッシュコードを持つ2つのオブジェクトが必ずしも等しいとは限りません。

注意!この質問は、同じハッシュコードを持つ2つのオブジェクトが必ずしも等しいとは限りません

+1

可能な 'int'よりも' String'が(例えば)多くあります。最終的には完璧なハッシュアルゴリズムを使用していても、一意のハッシュコードが不足します。 – resueman

+0

あなたとあなたの双子の弟は同じ誕生日ですが、違う人たちです.... –

答えて

0

これは簡単なことです。ハッシュコードは32ビットの整数なので、たとえば、Longとしましょう。 64ビット長であるため、2 よりもはるかに多くの値があります。したがって、同じハッシュコードを持つ多くの値が必要です。

関連する問題