Comparable определяет естественный порядок среди объектов. Java Collections Framework активно использует этот порядок. По нему упорядочены элементы SortedSet/SortedMap, им упорядочиваются элементы списков и массивов в методе sort().Порядок определяется единственным методом
compareTo. Отрицательный результат означает что текущий объект «меньше» чем переданный параметром, 0 – равен, положительный – больше. Рекомендуется чтобы равные с точки зрения equals объекты всегда были равны с точки зрения compareTo. С математической точки зрения это должен быть линейный порядок. Он требует выполнения четырех свойств:
1. Антирефлексивность:
x.compareTo(x) всегда 0;2. Антисимметричность: если
x.compareTo(y) > 0, то y.compareTo(x) < 0;3. Транзитивность: если
x.compareTo(y) > 0 и y.compareTo(z) > 0, то x.compareTo(z) > 0;4. Полнота: отношение определено для любых объектов класса (кроме
null).