Tarih :12 Aralık 2019

Comparable ve Comparator Arasındaki Fark Nedir?

Comparable

Örnek olarak aşağıda verilen Deprem sınıfını ele alalım. Bu sınıfa ait nesneleri sadece siddet değerine göre sıralayacaksak sınıfta Comparable<> arayüzünü uygulayabiliriz.

compareTo() metodunun içerisinde siddet değerlerinin aynı olması halinde, bu kez başka bir sıralama ölçütüne bakabiliriz.

Örneğin yukarıdaki 32. ve 40. satırlarda görüldüğü gibi siddet değerleri eşit ise; bu koşulu ifade eden else içerisinde yeni bir if–else if-else yapısı tanımlayıp, eşit şiddet değerine sahip olanları yil değerlerine göre sıralatabiliriz.

Çıktı :

Comparator

Önceki örnekte öncelikli sıralama ölçütü olarak diğer değişkenlerini (yil, konum) kullanmak istiyorsak, bunlar için Comparator<> arayüzünü uygulayan karşılaştırıcı sınıflarımızı tanımlayabiliriz.

Yine karşılaştırılan ölçüt eşit olması durumunda; bir başka ölçüte bakabiliriz.

Örneğin yıla göre sıralarken, yil değerleri eşit ise siddete (küçükten büyüğe) göre sıralayalım.

Çıktı :

Özetle, Karşılaştırılabilir(Comparable) arayüzü, Karşılaştırıcı (Comparator) arayüzü gibi List arayüzünü uygulayan sınıflara ait (ArrayList gibi) nesnelerin elemanlarını sıralamada kullanılan alternatif bir yöntem sağlar .

NOT : Comparable, Comparator ve Collections Sort adlı yazılarımı inceleyebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir