Junior — Middle
Java'da Comparator va Comparable interfeyslari o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Java-da Comparable va Comparator interfeyslar ob'ektlarni taqqoslash uchun ishlatiladi, ammo ular turli maqsadlar uchun:
-
Comparable — ob'ektlarning tabiiy tartibini belgilaydi. Bu interfeysni amalga oshiradigan sinf, ob'ektlarni
compareTo()metodi yordamida taqqoslash imkonini beradi. Odatda, bu standart saralash uchun ishlatiladi. -
Comparator — bu alohida ob'ekt bo'lib, ikki ob'ektni taqqoslash uchun alternativ usulni belgilaydi. Bu, ob'ektlarni turli mezonlar bo'yicha saralash yoki sinf
Comparableni amalga oshirmagan hollarda ishlatiladi.
Misol:
class Person implements Comparable<Person> {
String name;
int age;
public int compareTo(Person other) {
return this.name.compareTo(other.name); // tabiiy tartib nom bo'yicha
}
}
// Yoshi bo'yicha saralash uchun Comparator
Comparator<Person> ageComparator = new Comparator<Person>() {
public int compare(Person p1, Person p2) {
return Integer.compare(p1.age, p2.age);
}
};
Shu tarzda, Comparable sinf ichida taqqoslash usulini belgilaydi, Comparator esa tashqi taqqoslash usullarini yaratishga imkon beradi.