Junior
34
0
questionbank

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

Answer from sobes.tech neural network

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 используется для определения "естественного" порядка сортировки для объекта класса. Реализует интерфейс 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)
ПрименениеВнутри класса объектаОтдельный класс или лямбда
Расположение логикиВ самом классеВ отдельном месте
Количество порядковТолько один "естественный"Множество альтернативных
Изменение классаТребует изменения классаНе

Register or sign in to get access to full answers for all questions from the question bank.

comparatorcomparableobject-comparisonsortingdata-structures