Comparable
используется для определения "естественного" порядка сортировки для объекта класса. Реализует интерфейс Comparable<T>
, предоставляя метод compareTo(T o)
.
Comparator
используется для определения одного или нескольких альтернативных порядков сортировки. Реализует интерфейс Comparator<T>
, предоставляя метод compare(T o1, T o2)
.
Основные отличия представлены в таблице:
Признак | Comparable | Comparator |
---|---|---|
Интерфейс | java.lang.Comparable<T> | java.util.Comparator<T> |
Метод сортировки | compareTo(T o) | compare(T o1, T o2) |
Применение | Внутри класса объекта | Отдельный класс или лямбда |
Расположение логики | В самом классе | В отдельном месте |
Количество порядков | Только один "естественный" | Множество альтернативных |
Изменение класса | Требует изменения класса | Не |
Comparable
используется для определения "естественного" порядка сортировки для объекта класса. Реализует интерфейс Comparable<T>
, предоставляя метод compareTo(T o)
.
Comparator
используется для определения одного или нескольких альтернативных порядков сортировки. Реализует интерфейс Comparator<T>
, предоставляя метод compare(T o1, T o2)
.
Основные отличия представлены в таблице:
Признак | Comparable | Comparator |
---|---|---|
Интерфейс | java.lang.Comparable<T> | java.util.Comparator<T> |
Метод сортировки | compareTo(T o) | compare(T o1, T o2) |
Применение | Внутри класса объекта | Отдельный класс или лямбда |
Расположение логики | В самом классе | В отдельном месте |
Количество порядков | Только один "естественный" | Множество альтернативных |
Изменение класса | Требует изменения класса | Не |
Register or sign in to get access to full answers for all questions from the question bank.