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 тышкы күпчелек чагыштыру ысулларын булдырырга мөмкинлек бирә.