Javadoc がわかりません:
The natural ordering for a class C is said to be consistent with equals if and only if
(e1.compareTo((Object)e2) == 0) has the same boolean value as e1.equals((Object)e2) for
every e1 and e2 of class C.
なぜそのようにする必要がありますか?
e1.equals(e2)=true は常に e1.compareTo(e2)==0 を意味する必要があることは理解していますが、反対が真である理由がわかりません。比較は平等ではない!2 つの等しいオブジェクトは 0 と比較する必要がありますが、2 つの異なるオブジェクトは、並べ替えの基準が該当しない場合は 0 と比較できる必要があります。つまり、異なるオブジェクトを等しくすることは正しくありませんが、比較が 0 の異なるオブジェクトがあるのはなぜでしょうか?
編集:後で、いくつかの互換性の問題のために、一貫性が強く推奨されると述べているため、質問