Comparable vs Comparator: разница и сравнение

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

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

Основные выводы

  1. Comparable — это интерфейс для естественного упорядочения объектов; Компаратор — это внешняя утилита для сравнения объектов.
  2. Реализация Comparable требует изменения класса сравниваемых объектов; Компаратор можно использовать без изменения исходного класса.
  3. Comparable накладывает один метод сортировки по умолчанию; Компаратор позволяет использовать несколько настраиваемых параметров сортировки.

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

Comparable — это интерфейс в Java, который определяет метод compareTo и используется для сравнения естественно упорядоченных объектов. Он сравнивает объекты, используя ссылку «this». Интерфейс компаратора сортирует объекты, принимая во внимание их атрибуты. Он рассматривает объекты двух разных классов.

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

Comparable — это интерфейс, который присутствует в пакете lang языка Java, и его целью является сортировка элементов коллекции с использованием только одного атрибута, такого как возраст, цена, идентификатор, имя и т. д.

Он способен сравнивать себя с любым другим объектом. Объект любого типа, будь то список или массив, можно сортировать.

Comparator — это интерфейс, который присутствует в пакете util языка Java, и его назначение — сортировать элементы коллекции, используя сразу несколько атрибутов.

Это отдельный класс, внешний по отношению к типу сравниваемого элемента. Класс collections предоставляет второй метод сортировки, который принимает компаратор в качестве параметра.

Сравнительная таблица

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

Что такое Сопоставимо?

Как обсуждалось выше, compare — это интерфейс языка программирования Java, который присутствует в пакете lang и используется для сортировки элементов коллекции с использованием только одного атрибута. Сопоставимый интерфейс содержит только один метод — compareTo().

Читайте также:  Инкапсуляция против шифрования: разница и сравнение

Сопоставимый объект способен сравниваться с другими объектами. Чтобы класс мог сравнивать экземпляры, необходимо, чтобы класс реализовал интерфейс Comparable.

Сопоставимый интерфейс был разработан для объектов с естественным упорядочением. Другими словами, это означает, что объект, подлежащий сортировке, должен иметь порядок, в котором он должен быть отсортирован.

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

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

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

сравнимый

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

Интерфейс компаратора языка программирования Java присутствует в пакете util и используется для сортировки коллекции сразу по нескольким атрибутам.

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

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

Последним шагом является вызов перегруженного метода, которым является метод sort(), а затем присвоение как списка, так и экземпляра класса, созданного на предыдущем шаге.

Интерфейс компаратора сравнивает два объекта разных классов. В интерфейсе Comparator есть два метода: метод compare() и метод equals().

Читайте также:  Facebook против Hi5: разница и сравнение

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

Метод equals() возвращает логическое значение на выходе. True возвращается, когда объект проходит и вызывающий объект является компаратором, а если нет, то возвращается false.

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

компаратор

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

  1. Интерфейс Comparable обеспечивает единую сортировку последовательность в котором коллекция может быть отсортирована по одному элементу, такому как идентификатор, имя или любой конкретный параметр, тогда как интерфейс компаратора обеспечивает множественную последовательность сортировки, в которой коллекция может быть отсортирована по нескольким элементам, таким как идентификатор, имя или любой другой параметр .
  2. Сопоставимый интерфейс влияет на исходный класс, поскольку он модифицирует фактический класс, тогда как, с другой стороны, интерфейс сравнения никак не влияет на исходный класс, поскольку фактический класс остается тем же самым без каких-либо модификаций.
  3. Сопоставимый интерфейс присутствует в пакете lang Java, тогда как интерфейс компаратора присутствует в пакете util Java.
  4. В сопоставимом интерфейсе метод compareTo() используется для сортировки элементов, тогда как в интерфейсе компаратора метод compare() используется для сортировки элементов.
  5. Элементы списка сопоставимых типов коллекции можно сортировать с помощью свойства Collections. Метод Sort (List), тогда как, с другой стороны, элементы списка типа компаратора коллекции можно сортировать с помощью метода Collections. Метод сортировки (список, сравнение).
Разница между X и Y 2023 05 06T084306.029
Рекомендации
  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/

Последнее обновление: 17 июля 2023 г.

точка 1
Один запрос?

Я приложил столько усилий, чтобы написать этот пост в блоге, чтобы предоставить вам ценность. Это будет очень полезно для меня, если вы подумаете о том, чтобы поделиться им в социальных сетях или со своими друзьями/родными. ДЕЛИТЬСЯ ♥️

5 мыслей о «Сравнимое и сравнительное: разница и сравнение»

  1. Ключевые различия, на которые вы указали между интерфейсами Comparable и Comparator, очень информативны и полезны для понимания различий между ними. Ваше объяснение того, как интерфейс Comparable автоматически сортирует объекты в естественном порядке, определенном методом CompareTo, особенно поучительно.

    Ответить
    • Спасибо за подробное описание логики интерфейсов Comparable и Comparator. Эта информация, несомненно, поможет более эффективно внедрить механизмы сортировки.

      Ответить
    • Согласен, в статье представлено четкое и лаконичное сравнение интерфейсов Comparable и Comparator, что облегчает понимание их уникальных функций и вариантов использования.

      Ответить
  2. Разбивка интерфейсов Comparable и Comparator и их отличительных особенностей очень поучительна. Ваше подробное объяснение назначения и использования этих интерфейсов, несомненно, поможет разработчикам принять обоснованные проектные решения.

    Ответить
    • Я ценю подробное сравнение, представленное здесь. Это ценная информация для разработчиков, желающих лучше понять методы сортировки и сравнения в Java.

      Ответить

Оставьте комментарий

Хотите сохранить эту статью на потом? Нажмите на сердечко в правом нижнем углу, чтобы сохранить в свой собственный блок статей!