Всем привет! Сегодня предлагаю рассмотреть данную тему, так как она нередко "всплывает" как на практике, так и на технических интервью. Немного из теории 1. Чтобы объекты нашего класса E можно было сравнить и сортировать, он должен имплементить интерфейс Comparable, который содержит метод int compareTo(E other), для сравнения текущего объекта с объектом, переданным в качестве параметра. 2. Если в классе E, который мы хотим использовать не реализован интерфейс Comparable, или реализовал, но нас не устраивает его функциональность, то можем создать класс, реализующий Comparator<E>, определить метод compare(E o1, E o2), позволяющий сравнивать между собой 2 объекта. 3. Методы compareTo и compare возвращают: - 0, если значения равны; - отрицательное значение (обычно -1), если первый объект меньше второго; - положительное значение (обычно +1), если первый объект больше второго. К примерам Пример 1. Реализация Comparator<Integer> Нередко в интернете (да и что греха таить в пулл реквестах на пр