Junior — Middle
Koja je razlika između interfejsa Comparator i Comparable u Javi?
sobes.tech АИ
Одговор од АИ
U Javi, interfejsi Comparable i Comparator koriste se za poređenje objekata, ali imaju različite svrhe:
-
Comparable — definiše prirodni red objekata. Klasa implementira ovaj interfejs kako bi objekti mogli da se porede pomoću metode
compareTo(). Obično se koristi za podrazumevano sortiranje. -
Comparator — je odvojeni objekat koji određuje alternativni način poređenja dva objekta. Koristi se kada je potrebno sortirati objekte po različitim kriterijumima ili kada klasa ne implementira
Comparable.
Primer:
class Person implements Comparable<Person> {
String name;
int age;
public int compareTo(Person other) {
return this.name.compareTo(other.name); // prirodni red po imenu
}
}
// Comparator za sortiranje po starosti
Comparator<Person> ageComparator = new Comparator<Person>() {
public int compare(Person p1, Person p2) {
return Integer.compare(p1.age, p2.age);
}
};
Na ovaj način, Comparable definiše jedan način poređenja unutar klase, dok Comparator omogućava kreiranje više spoljašnjih načina poređenja.