Junior
78
questionbank

В чем отличие между Comparator и Comparable?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Comparable используется для определения "естественного" порядка сортировки для объекта класса. Реализует интерфейс Comparable<T>, предоставляя метод compareTo(T o).

Comparator используется для определения одного или нескольких альтернативных порядков сортировки. Реализует интерфейс Comparator<T>, предоставляя метод compare(T o1, T o2).

Основные отличия представлены в таблице:

ПризнакComparableComparator
Интерфейсjava.lang.Comparable<T>java.util.Comparator<T>
Метод сортировкиcompareTo(T o)compare(T o1, T o2)
ПрименениеВнутри класса объектаОтдельный класс или лямбда
Расположение логикиВ самом классеВ отдельном месте
Количество порядковТолько один "естественный"Множество альтернативных
Изменение классаТребует изменения классаНе требует изменения класса

Пример использования Comparable:

java

Пример использования Comparator:

java