hashCode
と equals の値をオーバーライドして異なる を与える場合を除きますbehaviour
。
hashCode
そうでない場合は、デフォルトを使用するだけで、JVM によって多かれ少なかれ保証される方法で、異なるオブジェクトごとに異なる があります。
equals
たとえば、特定の条件が満たされた場合 (たとえば、単に同じである場合) に 2 つのオブジェクトが同じであると言いたい場合にのみ、 をオーバーライドする必要がありますunique_ID
。
overrideを行う場合は、オブジェクト コントラクトを尊重するために をオーバーライドequals
する必要があります。hashCode
クラス Object の equals メソッドは、オブジェクトに対して最も識別可能な等価関係を実装します。つまり、null 以外の参照値 x と y の場合、このメソッドは、x と y が同じオブジェクトを参照している (x == y の値が true) 場合にのみ true を返します。
通常、このメソッドがオーバーライドされるときは常に、hashCode メソッドをオーバーライドする必要があることに注意してください。これは、等しいオブジェクトには等しいハッシュ コードが必要であるという、hashCode メソッドの一般的な契約を維持するためです。
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)