Sobes.tech
Junior — Middle

Java-da Comparator və Comparable interfeysləri arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da ComparableComparator interfeysləri obyektləri müqayisə etmək üçün istifadə olunur, lakin müxtəlif məqsədlərə xidmət edir:

  • Comparable — obyektlərin təbii sırasını müəyyən edir. Bu interfeysi həyata keçirən sinif, obyektlərin compareTo() metodu ilə müqayisə olunmasına imkan verir. Adətən, standart sıralama üçün istifadə olunur.

  • Comparator — iki obyekti müqayisə etmək üçün alternativ üsul müəyyən edən ayrıca obyektdir. Obyektləri müxtəlif meyarlar üzrə sıralamaq və ya sinif Comparable-ı həyata keçirmədikdə istifadə olunur.

Nümunə:

class Person implements Comparable<Person> {
    String name;
    int age;

    public int compareTo(Person other) {
        return this.name.compareTo(other.name); // təbii sıralama ad üzrə
    }
}

// Yaş üzrə sıralama üçün Comparator
Comparator<Person> ageComparator = new Comparator<Person>() {
    public int compare(Person p1, Person p2) {
        return Integer.compare(p1.age, p2.age);
    }
};

Beləliklə, Comparable sinif daxilində müqayisə üsulunu müəyyən edir, Comparator isə çoxsaylı xarici müqayisə üsulları yaratmağa imkan verir.