واجهة جافا المقارنة يستخدم لترتيب كائنات فئة محددة من قبل المستخدم.
تم العثور على هذه الواجهة في حزمة java.util وتحتوي على طريقتين للمقارنة (Object obj1،Object obj2) والمساواة (Object element).
يوفر تسلسلات فرز متعددة، أي أنه يمكنك فرز العناصر على أساس أي عضو بيانات، على سبيل المثال، رولنو، الاسم، العمر أو أي شيء آخر.
طرق واجهة جافا المقارنة
طريقة | وصف |
---|---|
مقارنة int العامة (Object obj1، Object obj2) | يقارن الكائن الأول مع الكائن الثاني. |
القيمة المنطقية العامة تساوي (Object obj) | يتم استخدامه لمقارنة الكائن الحالي بالكائن المحدد. |
القيمة المنطقية العامة تساوي (Object obj) | يتم استخدامه لمقارنة الكائن الحالي بالكائن المحدد. |
طريقة | وصف |
---|---|
مقارنة كثافة العمليات (T o1، T o2) | يقارن الكائن الأول مع الكائن الثاني. |
ثابتة | فهو يقبل دالة تستخرج مفتاح فرز قابل للمقارنة من النوع T، وتقوم بإرجاع مقارن يتم مقارنته بواسطة مفتاح الفرز هذا. |
مقارنة المقارنة الثابتة (Function keyExtractor، Comparator keyComparator) | يقبل دالة تستخرج مفتاح الفرز من النوع T، وترجع مقارنة يتم مقارنتها بواسطة مفتاح الفرز هذا باستخدام المقارنة المحددة. |
مقارنة ثابتة مقارنة مزدوجة (ToDoubleFunction keyExtractor) | يقبل دالة تستخرج مفتاح فرز مزدوج من النوع T، وترجع مقارنًا يتم مقارنته بمفتاح الفرز هذا. |
مقارنة ثابتة CompareInt (ToIntFunction keyExtractor) | يقبل دالة تستخرج مفتاح فرز int من النوع T، وترجع مقارنًا يتم مقارنته بمفتاح الفرز هذا. |
مقارنة ثابتة مقارنة طويلة (ToLongFunction keyExtractor) | يقبل دالة تستخرج مفتاح فرز طويل من النوع T، وترجع مقارنًا يتم مقارنته بمفتاح الفرز هذا. |
قيمة منطقية (كائن obj) | يتم استخدامه لمقارنة الكائن الحالي بالكائن المحدد. |
ثابتة | تقوم بإرجاع مُقارن يقارن الكائنات القابلة للمقارنة بالترتيب الطبيعي. |
المقارنة الثابتة nullsFirst(مقارنة المقارنة) | تقوم بإرجاع مقارن يعامل العناصر الخالية على أنها أقل من العناصر غير الخالية. |
المقارنة الثابتة nullsLast (مقارنة المقارنة) | تقوم بإرجاع مقارن يعامل العناصر الخالية على أنها أكبر من العناصر غير الخالية. |
تم عكس المقارنة الافتراضية () | تقوم بإرجاع المقارنة التي تحتوي على ترتيب عكسي للمقارنة المقدمة. |
ثابتة | تقوم بإرجاع المقارنة التي تحتوي على عكس الترتيب الطبيعي. |
المقارنة الافتراضية ثم المقارنة (المقارنة الأخرى) | تقوم بإرجاع مقارنة الترتيب المعجمي مع مقارنة أخرى. |
تقصيرالمقارنة ثم المقارنة (مستخرج مفتاح الوظيفة) | تقوم بإرجاع مقارنة ترتيب معجمي مع وظيفة تستخرج مفتاح فرز قابل للمقارنة. |
المقارنة الافتراضية ثم المقارنة (Function keyExtractor، Comparator keyComparator) | تقوم بإرجاع مقارنة ترتيب معجمي مع وظيفة تستخرج مفتاحًا لمقارنته مع المقارنة المحددة. |
المقارنة الافتراضية ثمComparingDouble (ToDoubleFunction keyExtractor) | تقوم بإرجاع مقارنة الترتيب المعجمي مع وظيفة تستخرج مفتاح الفرز المزدوج. |
المقارنة الافتراضية ثمComparingInt (ToIntFunction keyExtractor) | تقوم بإرجاع مقارنة الترتيب المعجمي مع وظيفة تستخرج مفتاح الفرز int. |
المقارنة الافتراضية ثمComparingLong (ToLongFunction keyExtractor) | تقوم بإرجاع مقارنة الترتيب المعجمي مع وظيفة تستخرج مفتاح فرز طويل. |
جافا 8 مثال المقارنة
دعونا نرى مثال فرز عناصر القائمة على أساس العمر والاسم.
الملف: Student.java
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; } }
الملف: TestSort1.java
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
مثال على مقارنة Java 8: طريقة nullsFirst() وnullsLast()
هنا، نقوم بفرز قائمة العناصر التي تحتوي أيضًا على قيمة خالية.
الملف: Student.java
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; } }
الملف: TestSort2.java
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