Tavsiye, 2024

Editörün Seçimi

Java'da Karşılaştırılabilir ve Karşılaştırıcı Arasındaki Fark

Karşılaştırılabilir ve Karşılaştırıcı, Java'daki nesnelerin veri öğelerini karşılaştırmak için kullanılan genel arabirimlerdir. Karşılaştırılabilir arayüz java.lang paketinde bulunur ve Karşılaştırıcı arayüz java.util paketinde bulunur. Karşılaştırılabilir ve Karşılaştırıcı arayüzleri arasındaki temel fark, Karşılaştırılabilir arayüzün tekli sıralama dizisini sağlamasıdır, buna karşılık Karşılaştırıcı arayüzü ise çoklu sıralama dizilerini sağlamaktadır. Karşılaştırma Tablosunda inceleyeceğimiz Karşılaştırma ve Karşılaştırma arayüzü arasında başka bazı farklılıklar var.

Karşılaştırma Tablosu

Karşılaştırma için temelkarşılaştırılabilirKarşılaştırıcı
TemelKarşılaştırılabilir arayüz sadece tekli sıralama dizisine izin verir.Karşılaştırıcı arayüzü, çoklu Sıralama sekanslarına izin verir.
PaketlerKarşılaştırılabilir arayüz java.lang paketinde bulunmaktadır.Karşılaştırıcı arabirimi java.util paketinde bulunur.
YöntemlerKarşılaştırılabilir arayüz sadece tek bir yöntem içerir
public int compareTo (Nesne obj);
Karşılaştırıcı arabirimi iki yöntem içerir
public int karşılaştırması (Nesne obj1, Nesne obj2)
boolean eşittir (nesne obj)
uygulamaKarşılaştırılabilir arayüz, nesneleri karşılaştırılacak olan sınıf tarafından uygulanır.Karşılaştırıcı arabirimi, nesneleri karşılaştırılacak olan sınıf yerine özel bir sınıf tarafından uygulanır.
karşılaştırmaCompareTo (Object obj) yöntemi, yöntemi belirtilen nesneyle çağırmak için kullanılan nesneyi yönteme iletir.Compare (Object obj1, Object obj2) yöntemi, her iki yönteme iletilen belirtilen nesneleri karşılaştırır.
Liste / DiziKarşılaştırılabilir türdeki nesnelerin bir listesiyle karşılaştırılması gerektiğinde, Koleksiyon sınıfı, örneğin Collections.sort (List lst) gibi bir yöntem sağlar.Karşılaştırılabilir türdeki nesnelerin bir listesiyle karşılaştırılması gerektiğinde, Koleksiyon sınıfı bir yöntem sağlar;
Collections.sort (Liste, Karşılaştırma).

Karşılaştırılabilir tanımı

Karşılaştırılabilir, java.lang paketinde bulunan bir arayüzdür. Bir sınıf, nesnesini doğal düzende sıralamak için Karşılaştırma arabirimini uygular. Nesneler doğal sıraya göre sıralanır, nesnelerin ASCII değerleri ile karşılaştırıldığı anlamına gelir. Karşılaştırılabilir arabirimi uygulayan sınıflar, Byte, Karakter, Çift, Kayan, Uzun, Kısa, Dize ve Tamsayı sınıflarıdır. Date ve Calander sınıfı bile Karşılaştırılabilir arayüzünü uygular.

Karşılaştırılabilir arayüz, CompareTo (Object obj) olan tek bir yöntem içerir. Bu yöntem, yöntemi çağırmak için kullanılan nesneyi parametrede belirtilen nesne ile karşılaştırır. Yöntemin sözdizimi aşağıdaki gibidir:

 public int compareTo (Nesne obj); 

CompareTo (Object obj) yöntemi, yöntemle karşılaştırılan her iki nesnenin de aynı değeri içermesi durumunda, çağrılan nesnenin belirtilen nesneden daha küçük olması durumunda -ve değerini, çağrılan nesnenin daha büyük olması durumunda + ve değerini döndürür Belirtilen nesne ile karşılaştırıldığında değeri. Koleksiyonlar sınıfı, listenin öğelerini sıralamak için bir sıralama yöntemi sağlar. Karşılaştırılabilir türdeki liste (ve dizi) öğeleri “Collections.sort (List lst)” yöntemi kullanılarak sıralanabilir.

Karşılaştırıcının tanımı

Karşılaştırıcı, java.util paketinde bulunan bir arayüzdür. Arayüz Karşılaştırıcısı, nesneleri karşılaştırılacak sınıfa uygulanmaz; bunun yerine, ayrı sınıf, Karşılaştırıcı arabirimini uygular; böylece sıralama mantığı, nesnenin her veri öğesine farklı bir sınıfta uygulanır. Karşılaştırıcı aşağıdaki gibi iki yöntem içerir:

 public int karşılaştırması (Object obj1, Object obj2) ve boolean eşittir (Object obj) 

Yukarıdaki kıyaslama () yöntemi, birinci nesne obj1'i, ikinci nesne obj2 ile karşılaştırır. Compare () yöntemi, yöntemle karşılaştırılan her iki nesnenin de aynı değeri içerdiğinde 0 değerini döndürür, nesne obj1 nesnesinden daha küçükse -ve değerini, nesne obj1 karşılaştırıldığı gibi daha büyük bir değere sahipse + ve değerini döndürür obj2 nesnesine. Equals () yöntemleri, belirtilen nesnenin çağıran nesneye eşit olup olmadığını kontrol eder. Equals () yöntemi, karşılaştırılan nesnelerin her ikisi de eşitse, false döndürürse true değerini döndürür. Collections sınıfı, liste öğelerini ve karşılaştırma türünü sıralamak için bir yöntem sunar. Karşılaştırma türlerinin liste öğeleri, Collections.sort (Liste, Karşılaştırma) yöntemine göre sıralanır.

Karşılaştırılabilir ve Karşılaştırıcı arasındaki Temel Farklar

  1. Karşılaştırılabilir arayüz, nesnenin yalnızca tek veri öğesini karşılaştırırken diğer taraftan kıyaslama yöntemini karşılaştırabileceğiniz tek sıralama dizisine izin verir. Karşılaştırıcı arabirimi, nesnenin birden çok veri öğesini karşılaştırabileceğiniz anlamına gelen birden çok sıralama dizisine izin verir.
  2. Karşılaştırılabilir arayüz, sınıflandırma mantığı aynı sınıf içinde tanımlandığı için nesneleri karşılaştırılacak olan sınıf tarafından uygulanır. Öte yandan, Karşılaştırıcı arabirimi, nesneleri karşılaştırılacak olan sınıf tarafından uygulanmaz, çünkü sıralama mantığı, her sınıfın nesnenin tek veri öğesinde sıralamayı tanımladığı ve bu tanımlayıcı sınıfların Karşılaştırıcı arabirimini uyguladığı ayrı sınıflarda tanımlanır. .
  3. Karşılaştırılabilir arayüz, java.lang paketinin içinde, Karşılaştırıcı arayüz ise java.util paketinin içinde yer almaktadır.
  4. Karşılaştırılabilir arabirim, karşılaştırmalı (yalnızca obj obj) tek bir yöntem bildirir, Karşılaştırıcı arabirimi ise karşılaştırmak (nesne obj1, nesne obj2) ve eşittir (nesne obj) olmak üzere iki yöntem bildirir.
  5. Comparable'daki compareTo (Object obj) yöntemi, yönteme iletilen nesneyle nesneyi çağıran yöntemi karşılaştırırken, Comparator'un karşılaştırması (Object obj1, Object obj2) yöntemi, nesile1 nesnesini, yönteme iletilen obj2 ile karşılaştırır.
  6. Collections sınıfı, Karşılaştırılabilir türdeki nesneleri sıralamak için “Collections.sort (List lst)” bir sıralama yöntemi sağlar. Collections sınıfı, Comparator türündeki nesneleri sıralamak için Collections.sort (List, Comparator) sıralama yöntemi sağlar.

Sonuç:

Nesneleri doğal sıraya göre sıralamak istiyorsanız, karşılaştırılabilir arabirimi kullanarak nesneleri sıralamak istediğiniz herhangi bir özelliğe göre sıralayabilirsiniz, sonra Karşılaştırıcı arabirimi kullanılır.

Top