Різниця між порівнянним та порівняльним на Java

Автор: Laura McKinney
Дата Створення: 1 Квітень 2021
Дата Оновлення: 13 Травень 2024
Anonim
Suspense: Eve
Відеоролик: Suspense: Eve

Зміст

Comparable і Comparator - це загальні інтерфейси на Java, які використовуються для порівняння елементів даних об'єктів. Інтерфейс Порівняння присутній у пакеті java.lang, а інтерфейс компаратора - у пакеті java.util. Основна відмінність між інтерфейсами Comparable та Comparator полягає в тому, що інтерфейс Comparable забезпечує єдину послідовність сортування, тоді як інтерфейс Comparator забезпечує декілька послідовностей сортування. Існують деякі інші відмінності між Порівняльним та Порівняльним інтерфейсом, які ми вивчимо у Порівняльній таблиці.


  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма

Основа для порівнянняПорівнюванийКомпаратор
Основні Інтерфейс, що порівнюється, дозволяє лише одну послідовність сортування.Інтерфейс Comparator дозволяє проводити декілька послідовностей сортування.
Пакети Порівняльний інтерфейс присутній у пакеті java.lang.Інтерфейс Comparator присутній в пакеті java.util.
Методи Порівняльний інтерфейс містить лише один метод
public int CompareTo (Object obj);
Інтерфейс Comparator містить два способи
public int зіставити (Object obj1, Object obj2)
булеві рівні (Object obj)
ВпровадженняПорівняльний інтерфейс реалізується класом, об'єкти якого слід порівнювати.Інтерфейс компаратора реалізується замість класу sperate замість класу, об'єкти якого слід порівнювати.
Порівняння Метод CompareTo (Object obj) порівнює об'єкт, який використовується для виклику методу із зазначеним об'єктом, переходить до методу.Метод порівняння (Object obj1, Object obj2) порівнює обидва зазначені об'єкти, які передаються методу.
Список / масивКоли список об’єктів Порівняльного типу доводиться порівнювати, клас Collection надає метод, тобто Collections.sort (Список lst).Коли список об'єктів порівнянного типу доводиться порівнювати, клас колекції надає метод, тобто
Collections.sort (Список, компаратор).


Визначення порівнянного

Порівняний інтерфейс, який доступний у пакеті java.lang. Клас реалізує інтерфейс Comparator, щоб сортувати його в природному порядку. Об'єкти відсортовані в природному порядку означає, що об'єкти порівнюються за їх значеннями ASCII. Класи, які реалізують порівнянний інтерфейс, - це байт, характер, подвійний, поплавковий, довгий, короткий, рядковий і цілий числа. Навіть клас Date та Calander також реалізує інтерфейс Comparable.

Інтерфейс, що порівнюється, містить лише один метод, який є CompareTo (Object obj). Цей метод порівнює об'єкт, який використовується для виклику методу, з об'єктом, зазначеним у параметрі. Синтаксис методу такий:

public int CompareTo (Object obj);

Метод CompareTo (Object obj) повернення 0, коли обидва об'єкта порівняно методом містять однакове значення, він повертається -ве значення, якщо об'єкт, що викликає, менший, ніж зазначений об'єкт, і повертається + ве значення, якщо об'єкт, що викликає, має більше значення в порівнянні з вказаним об'єктом. Клас Колекції забезпечує метод сортування для сортування елементів списку. Елементи списку (та масиву) порівнянного типу можна сортувати за допомогою методу “Collections.sort (Список lst)”.


Визначення компаратора

Компаратор - це інтерфейс, який доступний у пакеті java.util. Інтерфейс Comparator не реалізований для класу, об'єкти якого слід порівнювати, натомість окремий клас реалізує інтерфейс Comparator так, що логіка сортування застосовується до кожного елемента даних об'єкта в іншому класі. Компаратор містить два способи наступним чином:

public int зіставити (Object obj1, Object obj2) та булеві рівні (Object obj)

Метод порівняння () вище порівнює перший об'єкт obj1, з другим об'єктом obj2. Метод порівняння () повернення 0 коли обидва об'єкта порівняно методом містять однакове значення, він повертається -ве значення, якщо об'єкт obj1 менший, ніж об'єкт obj2 і повертається + ве значення, якщо об'єкт obj1 має більше значення в порівнянні з об'єктом obj2. Методи equals () перевіряють, чи вказаний об'єкт дорівнює об'єкту, що викликає. Метод equals () повернення правда якщо обидва порівняних об'єкта рівні, вони повертаються помилковий. Клас Колекції надає метод сортування елементів списку та типу компаратора. Елементи списку типів компараторів сортуються за методом Collections.sort (Список, Порівняльник).

  1. Порівнюваний інтерфейс дозволяє проводити одиночну послідовність сортування, що означає, що ви можете порівнювати лише один елемент даних об'єкта в методі CompareTo (), з іншого боку, інтерфейс компаратора дозволяє проводити кілька послідовностей сортування, що означає, що ви можете порівнювати декілька елементів даних об'єкта.
  2. Інтерфейс Порівняння реалізується класом, об'єкти якого слід порівнювати, оскільки логіка сортування визначена всередині одного класу. З іншого боку, інтерфейс компаратора не реалізується класом, об'єкти якого слід порівнювати, оскільки логіка сортування визначена в окремих класах, де кожен клас визначає сортування по одному елементу даних об’єкта, і ці класи, що визначають, реалізує інтерфейс компаратора .
  3. Інтерфейс Порівняння лежить всередині пакета java.lang, тоді як інтерфейс компаратора лежить всередині пакета java.util.
  4. Інтерфейс Порівняння оголошує лише один метод, який є порівнянням (Об'єкт obj), тоді як інтерфейс Компаратора оголошує два методи, які є, порівняти (Об'єкт obj1, Об'єкт obj2) і дорівнює (Об'єкт obj).
  5. Метод CompareTo (Object obj) у Порівнянні порівнює метод виклику об'єкта із зазначеним об'єктом, переданим методу, тоді як, метод порівняння (Object obj1, Object obj2) порівняння порівнює об'єкти obj1 з obj2, які передаються методу.
  6. Клас Колекції забезпечує метод сортування “Collections.sort (Список lst)” для сортування об’єктів типу Порівнюваний. Клас Колекції надає метод сортування Collections.sort (Список, Порівняльник) для сортування об'єктів типу Comparator.

Висновок:

Якщо ви хочете сортувати об'єкти в природному порядку, тоді ви можете використовувати порівнянний інтерфейс, у якому ви хочете сортувати об'єкти за будь-яким атрибутом, тоді використовується інтерфейс компаратора.