Sobes.tech
Junior — Middle

Java'da Comparator ve Comparable arayüzleri arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da Comparable ve Comparator arayüzleri nesneleri karşılaştırmak için kullanılır, ancak farklı amaçlara hizmet ederler:

  • Comparable — nesnelerin doğal sırasını tanımlar. Bu arayüzü uygulayan sınıf, nesnelerin compareTo() yöntemiyle karşılaştırılmasına olanak tanır. Genellikle varsayılan sıralama için kullanılır.

  • Comparator — iki nesneyi karşılaştırmak için alternatif bir yöntem belirleyen ayrı bir nesnedir. Nesneleri farklı kriterlere göre sıralamak veya sınıf Comparable'ı uygulamadığında kullanılır.

Örnek:

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

    public int compareTo(Person other) {
        return this.name.compareTo(other.name); // doğal sıralama isimlere göre
    }
}

// Yaşlara göre sıralama için Comparator
Comparator<Person> ageComparator = new Comparator<Person>() {
    public int compare(Person p1, Person p2) {
        return Integer.compare(p1.age, p2.age);
    }
};

Bu şekilde, Comparable sınıf içinde bir karşılaştırma yöntemi belirlerken, Comparator dışarıdan çoklu karşılaştırma yöntemleri oluşturmayı sağlar.