Java'da Karşılaştırılabilir Olan Nedir?
Java'da karşılaştırılabilir, kendisini başka bir nesneyle karşılaştırmak için bir nesnedir. Özel nesnelerin listesinin sıralanmasına yardımcı olur. Java.lang.Comparable arayüzü, örneklerini karşılaştırmak için bir sınıf tarafından uygulanmalıdır. Karşılaştırılabilir bir arabirim uygulayan nesne dizisi, Arrays.sort ve Collections.sort yöntemlerine göre otomatik olarak sıralanır.
Bu Karşılaştırıcı ve Karşılaştırılabilir Java eğitiminde şunları öğreneceksiniz:
- Java'da Karşılaştırılabilir Olan Nedir?
- Java'da Karşılaştırıcı nedir?
- Comparable'da kullanılan yöntem:
- Karşılaştırıcıda kullanılan yöntem:
- Java'da Karşılaştırılabilir ve Karşılaştırıcı Arasındaki Fark
- Comparator ve Comparable'ı Java'da Kullanırken En İyi Uygulamalar
Java'da Karşılaştırıcı nedir?
Java'daki karşılaştırıcı, farklı sınıfların farklı nesnelerini karşılaştırmak için bir nesnedir. Java'daki karşılaştırıcı arabirimi, kullanıcı tanımlı sınıfların nesnelerini düzenlemek için de kullanılır. Karşılaştırma (Nesne obj1, Nesne obj2) ve eşittir (Nesne öğesi) olarak bilinen iki önemli karşılaştırma arabirim yöntemini içerir.
ANAHTAR FARKLAR:
- Comparable, Java'daki öğeleri sıralamak için CompareTo () yöntemini sağlarken, Comparator, Java'daki öğeleri sıralamak için Compare () yöntemi sağlar.
- Karşılaştırılabilir arayüz java.lang paketinde bulunurken, Karşılaştırıcı arayüzü java.util paketinde mevcuttur.
- Karşılaştırılabilir, tek sıralama dizisi sağlarken, Karşılaştırıcı birden çok sıralama dizisi sağlar.
- Karşılaştırılabilir, orijinal sınıfı etkilerken, karşılaştırıcı orijinal sınıfı etkilemez.
Comparable'da kullanılan yöntem:
Karşılaştırılabilir arayüzde kullanılan önemli bir yöntem aşağıdadır:
Karşılaştırmak():
CompareTo () yöntemi, dizede doğal sıralama gerçekleştirmek için kullanılır. Doğal sıralamanın anlamı, nesneye uygulanan sıralama düzenidir, örneğin, tam sayıları sıralamak için sayısal sıralama, Dize için alfabetik sıralama, vb.
CompareTo () yönteminin sözdizimi aşağıdaki gibidir:
int compareTo(T obj)
Yukarıdaki sözdiziminde T, karşılaştıracağınız nesnelerin türünü belirtir.
CompareTo () yöntemi, nesneyi T obj ile karşılaştırır.
Çıktı:
- Değerler eşitse 0 döndürür.
- Nesnenin daha düşük bir değere sahip olması durumunda, bu yöntem negatif bir değer döndürür.
- Nesne daha yüksek bir değere sahipse, pozitif bir değer döndürür.
CompareTo () Yöntem Örneği:
Aşağıdaki Java karşılaştırılabilir örnek programı, "a" ve "b" olmak üzere iki karakterin karşılaştırmasını göstermektedir. "A" karakteri alfabetik olarak "b" harfinden önce gelir.
Bu nedenle çıktı -1'dir. "B" karakteri alfabetik olarak "a" dan sonra gelir. Dolayısıyla çıktı 1'dir. "A" ve "b" karakterlerinin her ikisi de eşdeğerdir. Dolayısıyla çıktı 0'dır.
public class Sample_String {public static void main(String[] args) {String str_Sample = "a";System.out.println("Compare To 'a' b is : " + str_Sample.compareTo("b"));str_Sample = "b";System.out.println("Compare To 'b' a is : " + str_Sample.compareTo("a"));str_Sample = "b";System.out.println("Compare To 'b' b is : " + str_Sample.compareTo("b"));}}
Çıktı
Compare To 'a' b is : -1Compare To 'b' a is : 1Compare To 'b' b is : 0
Karşılaştırıcıda kullanılan yöntem:
Karşılaştırıcı arayüzünde kullanılan önemli yöntemler şunlardır:
Karşılaştırmak():
Compare (), nesneleri sıralamanızı sağlar. Bunu yapmak için, karşılaştırıcı arabirimi uygulayan bir sınıf oluşturmanız gerekir. Bundan sonra, karşılaştırma yöntemini geçersiz kılmanız gerekir.
Compare () yönteminin sözdizimi aşağıdaki gibidir:
compare(Object obj1, Object obj2)
Yukarıdaki sözdiziminde, obj1 ve obj2, Compare () yöntemini kullanarak karşılaştırmanız gereken iki nesnedir.
Çıktı:
- İlk bağımsız değişken ikinciden küçükse negatif bir tamsayı döndürür.
- İlk bağımsız değişken ve ikinci bağımsız değişken eşitse sıfır döndürür.
- Bu yöntem, ilk bağımsız değişkenin ikinciden büyük olması durumunda pozitif bir tamsayı döndürebilir.
İlişkinin geçişli olmasını sağlamalısınız. Örneğin, ((a, b)> 0) && (karşılaştır (b, c)> 0)), bu da (a, c)> 0'ı ifade eder.
Karşılaştırma Yöntemi Örneği:
Aşağıdaki Java karşılaştırıcı örneğinde programda 6 değişken bulunmaktadır. "x", "y", "p", "q", "r" ve "s". Çıktı, "x" değeri olarak -1'dir, 20, "y" değerinden küçüktür, 30. Çıktı 0'dır çünkü "p" değeri 40 "q" değerine eşittir, 40 .
import java.lang.Integer;public class example {public static void main(String args[]){int x = 20;int y = 30;// as 10 less than 20,// Output will be a value less than zeroSystem.out.println(Integer.compare(x, y));int p = 40;int q = 40;// as 30 equals 30,// Output will be zeroSystem.out.println(Integer.compare(p, q));int r = 20;int s = 7;// as 15 is greater than 8,// Output will be a value greater than zeroSystem.out.println(Integer.compare(r, s));}}
Çıktı:
-101
Eşittir ():
Equals (), number nesnesinin, argüman olarak iletilen nesneye eşit olup olmadığını doğrular.
Equals () yönteminin sözdizimi aşağıdaki gibidir:
public boolean equals (Object o)
Bu yöntem iki parametre alır 1) herhangi bir nesne 2) dönüş değeri. Aktarılan bağımsız değişken boş değilse ve aynı sayısal değere sahip benzer türde bir nesne ise true döndürür.
Eşittir Yöntem Örneği:
Aşağıdaki örnekte, dört değişkeni birbiriyle karşılaştırıyoruz. Üç değişken tam sayı türünde ve biri kısa türündedir. İlk sonuç yanlıştır çünkü 5 olan p'nin değeri 20 olan q'nun değerine eşit değildir.
İkinci sonuç doğrudur çünkü p ve r değişkeninin değeri aynıdır, yani 5'tir. Son olarak, p ve s değişkenleri farklı atanmış değerlere sahip olduğundan çıktı yanlıştır.
public class Test {public static void main(String args[]) {Integer p = 5;Integer q = 20;Integer r =5;Short s = 5;System.out.println(p.equals(q));System.out.println(p.equals(r));System.out.println(p.equals(s));}}
Çıktı
falsetruefalse
Java'da Karşılaştırılabilir ve Karşılaştırıcı Arasındaki Fark
Java Comparable ile Comparator arasındaki temel farklar şunlardır:
Kıyaslanabilir | Karşılaştırıcı |
Comparable, Java'daki öğeleri sıralamak için CompareTo () yöntemi sağlar. | Comparator, Java'daki öğeleri sıralamak için karşılaştırma () yöntemi sağlar. |
Karşılaştırılabilir arayüz java.lang paketinde mevcuttur. | Karşılaştırıcı arayüzü java.util paketinde mevcuttur. |
Sıralama mantığı, nesnesini sıralayacağınız aynı sınıfta olmalıdır. | Nesnelerin farklı özelliklerine göre farklı sıralama yazmak için sıralama mantığı ayrı bir sınıfta olmalıdır. |
Nesnelerini sıralamak istediğiniz sınıf, karşılaştırılabilir arabirim uygulamalıdır. | Nesnelerini sıralamak istediğiniz sınıfın bir karşılaştırıcı arabirim uygulaması gerekmez. |
Tek sıralama dizileri sağlar. | Çoklu sıralama dizileri sağlar. |
Bu yöntem, verileri doğal sıralama düzenine göre sıralayabilir. | Bu yöntem, verileri özelleştirilmiş sıralama düzenine göre sıralar. |
Orijinal sınıfı etkiler. yani, gerçek sınıf değiştirilir. | Orijinal sınıfı etkilemez, yani gerçek sınıf değiştirilmez. |
Takvim, Sarmalayıcı sınıfları, Tarih ve Dize tarafından API'de sık sık uygulanır . | Üçüncü taraf sınıfların örneklerini sıralamak için uygulanır. |
Tüm sarmalayıcı sınıfları ve String sınıfı karşılaştırılabilir arabirim uygular. | Comparator'ın uygulanan tek sınıfları Collator ve RuleBasedColator'dır. |
Comparator ve Comparable'ı Java'da Kullanırken En İyi Uygulamalar
- Karşılaştırma belirli bir sınıf için standart olduğunda karşılaştırılabilir bir arayüz kullanın.
- Lambdaları bir karşılaştırıcıyla kullanabilirsiniz.
- Mevcut birçok çekirdek sınıf, karşılaştırılabilir bir arabirim uygular.
- TreeSet ve TreeMap'i kullanmak veya Set veya Map'i sıralarken kullanmak mümkündür.
- CompareTo () yöntemi hem karşılaştırıcıyla hem de karşılaştırılabilirle çalışır.
- Karşılaştırıcı arabirimini yalnızca
- CompareTo () yöntemi, ilk nesne diğerinden büyükse pozitif bir tamsayı, daha düşükse negatif ve her ikisi de aynıysa sıfır döndürür.