Интерфейс Java Comparator используется для сортировки массива или списка объектов на основе настраиваемого порядка. Пользовательский порядок элементов накладывается путем реализации в объектах метода Comparator.compare ().
Интерфейс Java Comparator полностью упорядочивает объекты, которые могут не иметь естественного порядка. Например, для списка объектов ученика естественный порядок может быть упорядочен по идентификатору ученика.
Но в реальных приложениях мы можем захотеть отсортировать список учащихся по их имени, дате рождения или просто любым другим подобным критериям. В таких условиях нам необходимо использовать интерфейс компаратора.
Интерфейс компаратора Java
Интерфейс компаратора в Java используется для упорядочивания объектов пользовательских классов. Объект компаратора может сравнивать два объекта двух разных классов.
Использование компаратора Java
Отсортируйте массив или список объектов, в которых мы не можем изменить исходный код объекта для реализации интерфейса Comparable. Java Comparator предоставляет несколько последовательностей сортировки, т. Е. Элементы могут быть отсортированы или классифицированы на основе любого числа, например номера ролика, возраста, номера идентификатора и т. Д.
Методы Java Интерфейс компаратора
Метод | Описание |
---|---|
public int compare (Object obj1, Object obj2) | Он сравнивает первый объект со вторым объектом. |
public boolean equals (Object obj) | Используется для сравнения текущего объекта с указанным объектом. |
public boolean equals (Object obj) | Используется для сравнения текущего объекта с указанным объектом. |
Comparator.compare ()
Чтобы дать возможность всем запрашивать статьи, мы должны создать класс, который реализует интерфейс Comparator. В этот момент мы должны заменить его стратегию сравнения (T o1, T o2).
Он смотрит на его два утверждения по запросу. Он восстанавливает отрицательное число, ноль или целое положительное число, поскольку основное утверждение не является точным, эквивалентным или более значимым, чем второе.
Практикующий должен также гарантировать, что соединение является транзитивным. : ((compare (x, y)> 0) &&
(compare (y, z)> 0)) предлагает compare (x, z)> 0.
См. следующий пример кода.
//Student.javaimport java.util. *; class Student {int rollno; Название строки, адрес; общедоступный студент (int rollno, имя строки, адрес строки) {this.rollno = rollno; this.name = имя; this.address = адрес; }//Получатели и сеттеры @Override public String toString () {return this.rollno + "" + this.name + "" + this. адрес; }} class Sortbyroll реализует Comparator {//Используется для сортировки в порядке возрастания//номера списка public int compare (Student a, Student b) {return a.rollno - b.rollno; }} class Sortbyname реализует Comparator {//Используется для сортировки в порядке возрастания//имя списка public int compare (Student a, Student b) {return a.name.compareTo (b.name); }} class Main {public static void main (String [] args) {ArrayList al = new ArrayList (); al.add (новый Студент (18, «KB», «london»)); al.add (новый Студент (19, "SM", "nyc")); al.add (новый Студент (21, "KL", "jaipur")); System.out.println («Несортированный»); для (int i = 0; iСм. результат.
![]()
Collections.sort () и Arrays.sort ()
- Используйте Collections.sort (list, Comparator) сортирует список объектов в порядке, установленном предоставленным экземпляром компаратора.
- Используйте Arrays.sort (array, Comparator) сортирует массив объектов в порядке, установленном предоставленным экземпляром компаратора.
Наконец, пример интерфейса Java Comparator Interface является больше.