Ответ
Интерфейс Comparable<T> используется для определения естественного порядка сортировки объектов класса. Класс, реализующий этот интерфейс, должен предоставить реализацию метода compareTo(), который сравнивает текущий объект (this) с другим объектом того же типа.
Для чего нужен:
- Позволяет сортировать коллекции с помощью
Collections.sort()илиArrays.sort()без явного указания компаратора. - Используется в коллекциях, которые хранят элементы в отсортированном порядке (например,
TreeSet,TreeMap).
Пример реализации:
public class Person implements Comparable<Person> {
private String name;
private int age;
// Конструктор, геттеры/сеттеры...
@Override
public int compareTo(Person other) {
// Сравниваем по возрасту (естественный порядок)
return Integer.compare(this.age, other.age);
}
}
// Использование:
List<Person> people = new ArrayList<>();
// ... добавление людей
Collections.sort(people); // Сортировка по возрасту, заданному в compareTo
Ключевой момент: Comparable определяет единственный, естественный способ сравнения объектов (например, по дате для LocalDate, по алфавиту для String).