equals () vs compareTo () в компараторе / состоянии (теоретическое)
Я не понимаю 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 равных объекта следует сравнивать с нулем, но 2 разных объекта должны иметь возможность сравнивать с 0, если критерии сортировки не актуальны в их случае. Я имею в виду, что выравнивание разных объектов - это не правильно, но разные объекты с нулевым сравнением, почему бы и нет?
EDIT: Later it says that consistency is strong recommended, for some compatibility issues, and hence the question