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.