Int の Scala Method hashCode() が同じ数値を返すのはなぜですか
質問する
1165 次
1 に答える
12
それが整数の hashCode の定義方法だからです。
それは契約を非常によく果たします:
- メソッドに従って 2 つのオブジェクトが等しい場合、2 つのオブジェクトのそれぞれでメソッド
equals(Object)
を呼び出すとhashCode
、同じ整数の結果が生成される必要があります。
その上で、それは推奨事項に準拠しています
- 2 つのオブジェクトがメソッドによって等しくない場合、2 つのオブジェクトのそれぞれでメソッド
equals(java.lang.Object)
を呼び出すと、hashCode
異なる整数結果が生成される必要はありません。ただし、プログラマーは、等しくないオブジェクトに対して個別の整数結果を生成すると、ハッシュテーブルのパフォーマンスが向上する可能性があることに注意する必要があります。
実際、これは完全なハッシュ関数の例です。
于 2012-08-03T07:50:13.097 に答える