Junior — Middle
Ի՞նչ տարբերություն կա Java-ում Comparator և Comparable ինտերֆեյսների միջև։
sobes.tech AI
Պատասխան AI-ից
Java-ում Comparable և Comparator ինտերֆեյսները օգտագործվում են օբյեկտների համեմատման համար, բայց ունեն տարբեր նպատակներ.
-
Comparable — սահմանում է օբյեկտների բնական կարգը: Կլասը իրականացնում է այս ինտերֆեյսը, որպեսզի օբյեկտները կարողանան համեմատվել
compareTo()մեթոդի միջոցով: Օգտագործվում է հիմնական դասակարգման համար: -
Comparator — առանձին օբյեկտ է, որը սահմանում է երկու օբյեկտների հակառակորդ տարբերակային համեմատման մեթոդը: Օգտագործվում է, երբ անհրաժեշտ է օբյեկտները դասավորել տարբեր չափանիշներով կամ երբ կլասը չի իրականացնում
Comparable-ը:
Օրինակ:
class Person implements Comparable<Person> {
String name;
int age;
public int compareTo(Person other) {
return this.name.compareTo(other.name); // բնական կարգ անունով
}
}
// Comparator՝ տարիքով դասավորելու համար
Comparator<Person> ageComparator = new Comparator<Person>() {
public int compare(Person p1, Person p2) {
return Integer.compare(p1.age, p2.age);
}
};
Այսպիսով, Comparable սահմանում է մեկ մեթոդ՝ ներսում դասի, իսկ Comparator թույլ է տալիս ստեղծել բազմաթիվ արտաքին համեմատական մեթոդներ: