3

Java で特定のオブジェクトのハッシュを生成したい場合、私が知っている最も簡単な方法は、Apache Commons を使用することですHashCodeBuilder

public class Person {
   String name;
   int age;
   boolean smoker;
   ...

   public int hashCode() {
     // you pick a hard-coded, randomly chosen, non-zero, odd number
     // ideally different for each class
     return new HashCodeBuilder(17, 37).
       append(name).
       append(age).
       append(smoker).
       toHashCode();
   }
 }

C++ に似たようなものはありますか?

4

2 に答える 2

0

ちなみに、hashCodeメソッドはオブジェクトの識別子を返しません。これはよくある誤解です。同じクラスの 2 つのオブジェクトが同じ値を返すのを防ぐ方法はありません。hashCode は、オブジェクトの識別用ではなく、ハッシュ テーブルのデータ構造用です。これらは 2 つの別個の概念です。

于 2009-08-21T10:37:28.650 に答える