Јава Цомпаратор интерфејс се користи за наручивање објеката кориснички дефинисане класе.
Овај интерфејс се налази у пакету јава.утил и садржи 2 методе цомпаре(Објецт обј1,Објецт обј2) и екуалс(Објецт елемент).
Пружа вишеструке секвенце сортирања, тј. можете сортирати елементе на основу било ког члана података, на пример, роллно, име, старост или било шта друго.
Методе Јава Цомпаратор Интерфаце
Метод | Опис |
---|---|
публиц инт цомпаре (Објецт обј1, Објецт обј2) | Она упоређује први објекат са другим објектом. |
јавни логички једнак (Објецт обј) | Користи се за упоређивање тренутног објекта са наведеним објектом. |
јавни логички једнак (Објецт обј) | Користи се за упоређивање тренутног објекта са наведеним објектом. |
Метод | Опис |
---|---|
инт упореди (Т о1, Т о2) | Упоређује први објекат са другим објектом. |
статична | Прихвата функцију која издваја упоредни кључ сортирања из типа Т и враћа упоредни кључ који упоређује по том кључу за сортирање. |
статичко поређење компаратора (Фунцтион кеиЕктрацтор, Цомпаратор кеиЦомпаратор) | Прихвата функцију која издваја кључ за сортирање из типа Т и враћа компаратор који упоређује по том кључу за сортирање користећи специфицирани компаратор. |
статички компаратор цомпарингДоубле(ТоДоублеФунцтион кеиЕктрацтор) | Прихвата функцију која издваја двоструки кључ за сортирање из типа Т и враћа компаратор који упоређује по том кључу за сортирање. |
статички компаратор цомпарингИнт(ТоИнтФунцтион кеиЕктрацтор) | Прихвата функцију која издваја инт кључ сортирања из типа Т и враћа компаратор који упоређује по том кључу сортирања. |
статички компаратор цомпарингЛонг(ТоЛонгФунцтион кеиЕктрацтор) | Прихвата функцију која издваја дуг кључ за сортирање из типа Т и враћа компаратор који упоређује по том кључу за сортирање. |
боолеан једнако (Објецт обј) | Користи се за упоређивање тренутног објекта са наведеним објектом. |
статична | Враћа компаратор који упоређује упоредиве објекте природним редоследом. |
статички компаратор нуллсФирст(компаратор компаратор) | Враћа компаратор који третира нулл као мање од не-нултих елемената. |
статички компаратор нуллсЛаст(компаратор компаратор) | Враћа компаратор који третира нулл као веће од елемената који нису нули. |
подразумевани компаратор реверсед() | Враћа компаратор који садржи обрнути редослед датог компаратора. |
статична | Враћа компаратор који садржи обрнуто од природног уређења. |
подразумевано упоређивање затим упоређивање (компаратор друго) | Враћа компаратор лексикографског реда са другим компаратором. |
УобичајеноКомпаратор затим Упоређивање (Функционални кључ Екстрактор) | Враћа компаратор лексикографског реда са функцијом која издваја кључ за сортирање упоредивих. |
подразумевани компаратор затим упоређивање (функцијски кључ Екстрактор, компаратор кључ компаратор) | Враћа компаратор лексикографског реда са функцијом која издваја кључ који треба да се упореди са датим компаратором. |
подразумевани Цомпаратор тхенЦомпарингДоубле(ТоДоублеФунцтион кеиЕктрацтор) | Враћа компаратор лексикографског реда са функцијом која издваја кључ за двоструко сортирање. |
подразумевани Цомпаратор тхенЦомпарингИнт(ТоИнтФунцтион кеиЕктрацтор) | Враћа компаратор лексикографског реда са функцијом која издваја инт кључ за сортирање. |
подразумевани компаратор затимЦомпарингЛонг(ТоЛонгФунцтион кеиЕктрацтор) | Враћа компаратор лексикографског реда са функцијом која издваја дуг кључ за сортирање. |
Пример Јава 8 компаратора
Погледајмо пример сортирања елемената Листе на основу старости и имена.
Фајл: Студент.јава
class Student { int rollno; String name; int age; Student(int rollno,String name,int age){ this.rollno=rollno; this.name=name; this.age=age; } public int getRollno() { return rollno; } public void setRollno(int rollno) { this.rollno = rollno; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
Датотека: ТестСорт1.јава
import java.util.*; public class TestSort1{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add(new Student(101,'Vijay',23)); al.add(new Student(106,'Ajay',27)); al.add(new Student(105,'Jai',21)); //Sorting elements on the basis of name Comparator cm1=Comparator.comparing(Student::getName); Collections.sort(al,cm1); System.out.println('Sorting by Name'); for(Student st: al){ System.out.println(st.rollno+' '+st.name+' '+st.age); } //Sorting elements on the basis of age Comparator cm2=Comparator.comparing(Student::getAge); Collections.sort(al,cm2); System.out.println('Sorting by Age'); for(Student st: al){ System.out.println(st.rollno+' '+st.name+' '+st.age); } } }
Sorting by Name 106 Ajay 27 105 Jai 21 101 Vijay 23 Sorting by Age 105 Jai 21 101 Vijay 23 106 Ajay 27
Пример Јава 8 компаратора: метод нуллсФирст() и нуллсЛаст().
Овде сортирамо листу елемената која такође садржи нулл.
Фајл: Студент.јава
class Student { int rollno; String name; int age; Student(int rollno,String name,int age){ this.rollno=rollno; this.name=name; this.age=age; } public int getRollno() { return rollno; } public void setRollno(int rollno) { this.rollno = rollno; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
Датотека: ТестСорт2.јава
import java.util.*; public class TestSort2{ public static void main(String args[]){ ArrayList al=new ArrayList(); al.add(new Student(101,'Vijay',23)); al.add(new Student(106,'Ajay',27)); al.add(new Student(105,null,21)); Comparator cm1=Comparator.comparing(Student::getName,Comparator.nullsFirst(String::compareTo)); Collections.sort(al,cm1); System.out.println('Considers null to be less than non-null'); for(Student st: al){ System.out.println(st.rollno+' '+st.name+' '+st.age); } Comparator cm2=Comparator.comparing(Student::getName,Comparator.nullsLast(String::compareTo)); Collections.sort(al,cm2); System.out.println('Considers null to be greater than non-null'); for(Student st: al){ System.out.println(st.rollno+' '+st.name+' '+st.age); } } }
Considers null to be less than non-null 105 null 21 106 Ajay 27 101 Vijay 23 Considers null to be greater than non-null 106 Ajay 27 101 Vijay 23 105 null 21