私は、次のタイトルの記事から引用された段落を読んでいました-Javaの理論と実践:それをハッシュする-hashCode()とequals()を効果的かつ正確に定義する
等価性の定義 Object クラスには、オブジェクトの同一性について推論するための 2 つのメソッドがあります。 equals() と hashCode() です。一般に、これらのメソッドのいずれかをオーバーライドする場合は、両方をオーバーライドする必要があります。これは、それらの間に維持する必要がある重要な関係があるためです。特に、equals() メソッドに従って 2 つのオブジェクトが等しい場合、それらは同じ hashCode() 値を持っている必要があります(ただし、逆は一般に当てはまりません)。[強調は私が追加しました]
私の質問は、「逆は一般的に真実ではありませんが」、段落の後半に関連しています。クラスの 2 つの異なるインスタンスが同じ hashCode を持っているが、等しくないということはどうして可能なのでしょうか?