重複の可能性:
Java では、なぜ equals() と hashCode() が一貫していなければならないのですか?
equals() をオーバーライドするときは、常に hascode() を使用する必要があることを読みました。
そうでなければ、なぜそれが間違っているのか、実際の例を挙げてくれる人はいますか? つまり、hashCode() ではなく equals() をオーバーライドするときに発生する可能性がある問題です。
equals() をオーバーライドするたびに、堅牢な hasCode() 関数を記述する必要がありますか? それとも簡単な実装で十分ですか?
例えば、
以下のような不十分な実装でも、equals() と hashCode()? の間の契約を満たすには十分です。
public int hashCode() {
return 91;
}