Я нахожу удивительным, что Java иногда может проверить контракт компаратора для вас.
Например, когда вы пишете отношение порядка, которое не следует транзитивности, вы получаете
java.lang.IllegalArgumentException: Comparison method violates its general contract!
Как можно проверить такое нарушение? Как Java это реализует?
(см. этот вопрос, если вы не знаете о чем я)