編集: この質問はビット単位の演算子に関するものではなく、Java hashCode() で XOR がよく使用されるのに、別のビット単位の演算子がほとんど使用されないのはなぜですか?
オブジェクトのハッシュ計算のさまざまなアプローチを見てきました。
class A {
public B b;
public C c;
@Override
public boolean equals();
@Override
public int hashCode() {
return c.hashCode() ^ b.hashCode(); //XOR
return c.hashCode() + prime * b.hashCode(); // SUM
return Objects.hash(b,c); // LIB
}
}
LIB 法は SUM を使用しているようですが、なぜ XOR より優れているのでしょうか?
例はJavaにありますが、この質問は数学と確率に関するものです。