Разница между устройством сравнения и компаратором (с таблицей)

Оглавление:

Anonim

Comparable и компаратор - это интерфейсы Java, который является языком программирования высокого уровня, используется для сортировки элементов коллекции. Java в основном предоставляет эти два разных интерфейса для сортировки объектов. Между обоими интерфейсами есть много заметных различий, которые создают линию между ними на основе выполняемой ими функции.

Сопоставимый vs Компаратор

Разница между сопоставимым и компаратором отличается по различным параметрам, например, первый интерфейс используется для сортировки коллекции по одному элементу, тогда как более поздний интерфейс используется для сортировки коллекции по нескольким элементам. Определенный класс должен сам реализовать java. Lang.Comparable, чтобы иметь возможность эффективно сравнивать его экземпляры, тогда как интерфейс компаратора является внешним по отношению к сравниваемому типу элемента.

Comparable - это интерфейс, который присутствует в пакете lang языка java, и его цель - сортировать элементы коллекции, используя только один атрибут, такой как возраст, цена, идентификатор, имя и т. Д. Он способен сравнивать себя с любой другой объект. Можно отсортировать объект любого типа, будь то список или массив.

Компаратор - это интерфейс, который присутствует в пакете util языка java, и его цель - сортировать элементы коллекции, используя сразу несколько атрибутов. Это отдельный класс, внешний по отношению к типу сравниваемого элемента. Класс коллекций предоставляет второй метод сортировки, который принимает в качестве параметра компаратор.

Таблица сравнения устройства сравнения и устройства сравнения

Параметры сравнения

Сопоставимый

Компаратор

Тип сортировки Он обеспечивает единую последовательность сортировки. Он обеспечивает несколько последовательностей сортировки.
Модификация класса Он изменяет фактический класс. Он не изменяет фактический класс.
Расположение пакета Он присутствует в пакете java-lang. Он присутствует в java. пакет утилит.
Методы У него есть метод compareTo (). У него есть метод compare ().
Способы сортировки Collections.sort (List) метод. Collections.sort (List, Comparator) метод.

Что сопоставимо?

Как обсуждалось выше, сопоставимым является интерфейс языка программирования java, который присутствует в пакете lang и используется для сортировки элементов коллекции с использованием только одного атрибута. Сопоставимый интерфейс содержит только один метод - compareTo (). Сопоставимый объект можно сравнивать с другими объектами. Чтобы класс мог сравнивать экземпляры, это необходимое условие, чтобы класс реализовал сопоставимый интерфейс.

Сопоставимый интерфейс был разработан для объектов с естественным упорядочением. Другими словами, это означает, что сортируемый объект должен иметь порядок, в котором он должен быть отсортирован. С логической точки зрения, сопоставимый интерфейс сравнивает ссылку «this» с объектом, упомянутым в методе. Когда сопоставимый интерфейс реализуется каким-либо классом, объект этого класса можно отсортировать с помощью коллекций. sort () или массивы. sort () метод.

Объекты будут автоматически отсортированы в естественном порядке, определяемом методом CompareTo. Можно сравнивать числа, строки и многие другие типы. Строки можно сравнивать, используя алфавитное сравнение. Различные встроенные классы java реализуют сопоставимый интерфейс. Самое важное, что следует иметь в виду, - это то, что сопоставимый интерфейс можно использовать только для сравнения объектов одного и того же класса.

Что такое компаратор?

Интерфейс компаратора языка программирования java присутствует в пакете util и используется для сортировки коллекции одновременно на основе нескольких атрибутов. Компаратор - это совершенно отдельный класс. Программисты используют для создания нескольких классов, реализующих интерфейс компаратора с целью сравнения различных объектов.

Чтобы сравнить любой объект коллекции, первым шагом является создание класса, реализующего метод компаратора, в котором есть метод compare (). Следующим шагом является создание экземпляра этого класса, реализующего интерфейс компаратора. Последний шаг - вызвать перегруженный метод, которым является метод sort (), а затем назначить и список, и экземпляр класса, который был создан на предыдущем шаге.

Интерфейс компаратора сравнивает два объекта разных классов. В интерфейсе Comparator есть два метода: метод compare () и метод equals (). Метод compare () принимает два разных объекта в качестве параметра для сравнения, а метод equals () определяет, равен ли переданный объект вызывающему компаратору. Метод equals () возвращает логическое значение в качестве вывода. Истина возвращается, когда объект передан, и вызывающий объект является обоими компараторами, а если нет, то возвращается ложь.

Метод compare () возвращает на выходе целочисленное значение, которое указывает на большее из двух переданных объектов.

Основные различия между Comparable и Comparator

Вывод

Хотя оба интерфейса используются для сортировки, они оба полностью отличаются друг от друга. Существует множество параметров или оснований, на основании которых они по-разному используются в элементах списка для разных целей. Если человек хочет отсортировать какие-либо элементы списка на основе одного элемента коллекции, то может быть реализован сопоставимый интерфейс; в противном случае, если индивидуум хочет отсортировать какие-либо элементы списка на основе нескольких атрибутов, тогда эта конкретная коллекция должна быть отсортирована с использованием интерфейса компаратора. Оба интерфейса разработаны для использования в разных целях.

использованная литература

  1. https://dom-pubs.onlinelibrary.wiley.com/doi/abs/10.1111/j.1463-1326.2011.01545.x
  2. https://journals.asm.org/doi/abs/10.1128/aac.47.6.1824-1831.2003
  3. https://ieeexplore.ieee.org/abstract/document/6042862/

Разница между устройством сравнения и компаратором (с таблицей)