休暇の後に戻って:)質問をしてください。ComparableDocumentation からComparableインターフェイスのドキュメントを読んでいます 。私は、並べ替えと自然な順序付けを提供するため、comparable を使用していることを理解しています。ドキュメントでは、次のように書かれています。
自然な順序付けが equals と一致することを強くお勧めします (必須ではありません)。これは、明示的な比較子のないソートされたセット (およびソートされたマップ) が、自然な順序付けが equals と矛盾する要素 (またはキー) で使用されると、「奇妙な」動作をするためです。特に、そのようなソート済みセット (またはソート済みマップ) は、equals メソッドに関して定義されているセット (またはマップ) の一般規約に違反しています。
Comparable は equals とどのように関連していますか。ComparableにはcompareToメソッドがあり、なぜequalsメソッドと一致する必要があるのですか? 私はこの概念を理解できません。
また、情報源から引用して、誰かがこの点についても詳しく説明できますか
たとえば、(!a.equals(b) && a.compareTo(b) == 0) となる 2 つのキー a と b を、明示的なコンパレータを使用しないソート済みセットに追加すると、2 番目の追加操作は false を返します。 (そしてソートされたセットのサイズは増加しません) a と b はソートされたセットの観点から同等であるためです。
ありがとう。