私は、最も一般的なJavaコレクションのさまざまなメソッド、操作、および前提条件を調査していますが、少し混乱しています。誰かが次のトピックを明確にすることができれば、私は非常にありがたいです:
1)aとaが正しく機能するためには、メソッドの実装がequals
絶対hashCode
に必要ですか?以前の方法を実装しないことの潜在的な影響は何ですか?私は現在、TreeMapとTreeSet(カスタムクラスObjectsの)を使用していますが、これらは、実装とそのメソッド、省略、およびを実行するだけで、これまでのところ正常に機能します。TreeSet
TreeMap
HashMap
Comparable
compareTo
equals
hashCode
2)クラスequals
、hashCode
またはインターフェイスComparable
でさえも強制する場合、すべての派生クラスが、新しい定義や実装なしで、それらのメソッドに従ってコレクションで適切に機能するのに十分ですか?与えられたメソッドは派生クラスにも属しているので、前者は正しいと思います。最終的に何が本当ですか?