2

Int の Scala Method hashCode() が同じ数値を返すのはなぜですか

4

1 に答える 1

12

それが整数の hashCode の定義方法だからです。

それは契約を非常によく果たします:

  • メソッドに従って 2 つのオブジェクトが等しい場合、2 つのオブジェクトのそれぞれでメソッドequals(Object)を呼び出すとhashCode、同じ整数の結果が生成される必要があります。

その上で、それは推奨事項に準拠しています

  • 2 つのオブジェクトがメソッドによって等しくない場合、2 つのオブジェクトのそれぞれでメソッドequals(java.lang.Object)を呼び出すと、hashCode異なる整数結果が生成される必要はありません。ただし、プログラマーは、等しくないオブジェクトに対して個別の整数結果を生成すると、ハッシュテーブルのパフォーマンスが向上する可能性があることに注意する必要があります。

実際、これは完全なハッシュ関数の例です。

于 2012-08-03T07:50:13.097 に答える