Comparable vs Comparator: різниця та порівняння

Comparable і comparator є інтерфейсами Java, мови програмування високого рівня, яка використовується для сортування елементів колекції. Java в основному надає ці два різні інтерфейси для сортування об’єктів.

Існує багато помітних відмінностей між обома інтерфейсами, які створюють межу між ними на основі функції, яку вони виконують.

Ключові винесення

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

Comparable vs Comparator

Comparable — це інтерфейс у Java, який визначає метод compareTo і використовується для порівняння природно впорядкованих об’єктів. Він порівнює об’єкти за допомогою посилання «this». Інтерфейс компаратора сортує об’єкти, враховуючи їхні атрибути. Він розглядає об'єкти двох різних класів.

Comparable vs Comparator

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

Він здатний порівнювати себе з будь-яким іншим об'єктом. Об’єкт будь-якого типу, будь то список або масив, можна сортувати.

Компаратор — це інтерфейс, який присутній у пакеті util мови Java, і його мета — сортувати елементи колекції за допомогою кількох атрибутів одночасно.

Це окремий клас і є зовнішнім щодо типу елемента, який порівнюється. Клас колекцій забезпечує другий метод сортування, який приймає компаратор як параметр.

Таблиця порівняння

Параметри порівнянняПорівнюванийкомпаратор
Тип сортуванняВін забезпечує єдину послідовність сортування.Він забезпечує кілька послідовностей сортування.
Модифікація класуВін змінює фактичний клас.Це не змінює фактичний клас.
Розташування упаковкиВін присутній у пакеті java—lang.Він присутній в java. службовий пакет.
МетодиВін має метод compareTo().Він має метод compare().
Методи сортуванняМетод Collections.sort(List).Метод Collections.sort(List,Comparator).

Що таке Comparable?

Як обговорювалося вище, comparable — це інтерфейс мови програмування Java, який присутній у пакеті lang і використовується для сортування елементів колекції за допомогою лише одного атрибута. Порівняльний інтерфейс містить лише один метод compareTo().

Також читайте:  Eclipse проти MyEclipse: різниця та порівняння

Порівнюваний об'єкт здатний порівнювати з іншими об'єктами. Щоб клас міг порівнювати екземпляри, необхідно, щоб клас реалізував інтерфейс Comparable.

Подібний інтерфейс був розроблений для об'єктів з природним упорядкуванням. Іншими словами, це означає, що об'єкт, який потрібно відсортувати, повинен мати порядок, у якому він має бути відсортований.

Логічно кажучи, порівняльний інтерфейс порівнює «це» посилання з об’єктом, згаданим у методі. Коли будь-який клас реалізує інтерфейс Comparable, об’єкт цього класу можна сортувати за допомогою колекцій. sort() або масиви. метод sort().

Об’єкти будуть автоматично відсортовані в природному порядку, визначеному методом CompareTo. Можна порівнювати числа, рядки та багато інших типів. Рядки можна порівнювати за допомогою алфавітного порівняння.

Різні вбудовані класи Java реалізують порівняльний інтерфейс. Найважливіше, що слід мати на увазі, це те, що порівняльний інтерфейс можна використовувати лише для порівняння об’єктів одного класу.

порівнянний

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

Інтерфейс компаратора мови програмування Java присутній в пакеті util і використовується для сортування колекції на основі кількох атрибутів одночасно.

Компаратор — це зовсім окремий клас. Програмісти використовують для створення кількох класів, які реалізують інтерфейс компаратора з метою порівняння різних об’єктів.

Щоб порівняти будь-який об’єкт колекції, першим кроком є ​​створення класу, що реалізує метод компаратора, який містить метод compare(). Наступним кроком є ​​створення екземпляра цього класу, який реалізує інтерфейс компаратора.

Останнім кроком є ​​виклик перевантаженого методу, яким є метод sort(), а потім призначення списку та екземпляра класу, створеного на попередньому кроці.

Інтерфейс компаратора порівнює два об'єкти різних класів. Інтерфейс Comparator містить два методи: метод compare() і метод equals().

Також читайте:  QuickTime проти Windows Media Player: різниця та порівняння

Метод compare() приймає два різні об’єкти як параметр для порівняння, а метод equals() визначає, чи є об’єкт Пройшов дорівнює викликаючому компаратору.

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

Метод compare() повертає ціле значення у вихідних даних, що вказує на більший з двох переданих об’єктів.

компаратор

Основні відмінності між Comparable і Comparator

  1. Інтерфейс Comparable забезпечує єдине сортування послідовність у якому колекція може бути відсортована за одним елементом, таким як ідентифікатор, ім’я або будь-який конкретний параметр, тоді як інтерфейс компаратора забезпечує багаторазову послідовність сортування, у якій колекція може бути відсортована за кількома елементами, такими як ідентифікатор, ім’я чи будь-який інший параметр .
  2. Інтерфейс порівняння впливає на вихідний клас, оскільки він модифікує фактичний клас, тоді як, з іншого боку, інтерфейс порівняння жодним чином не впливає на вихідний клас, оскільки фактичний клас залишається тим самим без будь-яких змін.
  3. Подібний інтерфейс присутній у пакеті lang Java, тоді як інтерфейс порівняння присутній у пакеті util Java.
  4. В інтерфейсі порівняння метод compareTo() використовується для сортування елементів, тоді як в інтерфейсі порівняння метод compare() використовується для сортування елементів.
  5. Елементи списку зіставних типів колекції можна сортувати за допомогою колекцій. Метод сортування (список), тоді як, з іншого боку, елементи списку типу компаратора колекції можна сортувати за допомогою колекцій. Метод сортування (список, компаратор).
Різниця між 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.

      відповісти

Залишити коментар

Хочете зберегти цю статтю на потім? Клацніть сердечко в нижньому правому куті, щоб зберегти у власній коробці статей!