Karşılaştırılabilir ve Karşılaştırıcı: Karşılaştırılabilir ve Karşılaştırıcı Arasındaki Fark
Yayınlanan: 2020-12-30İçindekiler
Karşılaştırılabilir ve Karşılaştırıcı: Genel Bir Bakış
Karşılaştırılabilir ve karşılaştırıcı, sınıfların uygulanacağı davranışı belirlemek için Java programlama dilindeki arabirimlerdir. Karşılaştırılabilir, doğal olarak sıralanmış nesneler üzerinde kullanılırken, Karşılaştırıcı arabirimi, bir nesnenin niteliklerini dikkate alarak sıralamayı gerçekleştirir. Ayrıca, Karşılaştırıcı sıralama, iki farklı sınıftaki nesneleri dikkate alır ve Karşılaştırılabilir, nesneleri “bu” referansını kullanarak karşılaştırır.
Şimdi, her iki arayüzün de çalıştığı temel prensibi oluşturduğumuza göre, ikisi arasındaki farklara bakalım.
Karşılaştırılabilir ve Karşılaştırıcı Arasındaki Fark
Sıralama Yöntemi
karşılaştırılabilir
Sıralama için CompareTo() işlevini kullanır. Bu, Karşılaştırılabilir sıralama arayüzünde bulunan tek yöntemdir.
CompareTo(Object O), bir nesneyi argüman olarak alır ve onu aynı türden başka bir nesneyle karşılaştırır. Bir nesne bir dize ise, onu yalnızca aynı türdeki başka bir nesneyle karşılaştırabilirsiniz. Aynı durum int nesnesi vb. için de geçerlidir. CompareTo(), sıralamanın sonucuna göre bir negatif, pozitif veya sıfır tamsayı değeri döndürür.
karşılaştırıcı
Karşılaştırıcıda öğeleri sıralamak için iki yöntem vardır: karşılaştırma() ve eşittir().
karşılaştırma(Object O1, Object O2) girdi olarak iki argümanı dikkate alır ve istenen çıktıyı sağlar. İlk argümanın ikinci ile nasıl birleştiğini belirtmek için bir tamsayı döndürür.

- O1, O2'den küçükse, negatif bir tamsayı döndürür.
- O1, O2'den büyükse, pozitif bir tamsayı döndürür.
- O1, O2'ye eşitse, 0 döndürür.
equals(Object) bir nesneyi girdi olarak dikkate alır ve onu karşılaştırıcıyla karşılaştırır. Object, Comparator'a eşitse True döndürür. Ayrıca sıranın değişmemesini sağlar.
Kullanılan Paket
karşılaştırılabilir
Java'nın java.lang paketinde bulunur.
karşılaştırıcı
Java'nın java.util paketinde bulunur.

Sipariş ve Sınıf
karşılaştırılabilir
- Doğal düzeni takip eden, yani kendilerini sıralama eğilimi olan nesneleri dikkate alır. Örneğin, isim, fiyat, maaş, rulo numarası, yaş vb. durumlarda alfabetik sıra veya sayısal sıra.
- Her iki nesnenin de aynı sınıfa ait olması da önemlidir.
- Karşılaştırılabilir arabirim, "bu" referansı belirtilen nesneyle karşılaştırır.
- Karşılaştırılabilir kullanarak sıralama, gerçek sınıfı etkiler.
karşılaştırıcı
- Bu arabirim, öncelikle belirtilen nesnelerin niteliklerini sıralamak için kullanılır. Doğal bir düzene sahip olmaları gerekmez; özelleştirilebilir.
- Söz konusu iki sınıfa ait nesnelerin özniteliklerini karşılaştırmak için sıralama mantığının ayrı sınıflarda olması gerekir.
- Gerçek sınıf etkilenmeden kalır.
Diziler ve Koleksiyonlar
karşılaştırılabilir
- Yalnızca tekli sıralama dizilerini destekler. Bu, bir koleksiyonun rulo sayısı veya yaş veya sıralama gibi yalnızca bir öğesini veya özniteliğini göz önünde bulundurabileceğiniz anlamına gelir.
- Bir nesne, dizi veya liste koleksiyonunu sıralamak için Koleksiyon'u kullanabilirsiniz. sort(Liste) veya Diziler. sırala (Liste). Bu, nesneleri doğal sıralarına getirecektir .
karşılaştırıcı
- Birden çok sıralama dizisini destekler. Bu, bir koleksiyonun rulo sayısı, yaş ve sıralama gibi birden çok öğesini veya özniteliğini göz önünde bulundurabileceğiniz anlamına gelir.
- Bir koleksiyonu sıralamak için bir collection.sort(liste, karşılaştırıcı) kullanabilirsiniz.
Karşılaştırılabilir ve Karşılaştırıcı arasındaki tüm farkların bir özeti

karşılaştırılabilir | karşılaştırıcı |
paket | |
Java.lang | Java.util |
Sıralama Yöntemi | |
karşılaştırmak() | karşılaştırmak() |
sipariş | |
doğal sıralama | Özel Sipariş |
Nesne Türü | |
Karşılaştırılacak nesneler aynı tipte olmalıdır | Farklı sınıfların nesneleri kabul edilir |
Sınıfa Etkisi | |
Sınıf değiştirilir | sınıfı etkilemez |
Sıralama Sırası | |
Tek Sıralama Sırası | Çoklu Sıralama Sırası |
Dünyanın En İyi Üniversitelerinden Yazılım Geliştirme Kurslarına Kaydolun . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Java'da Karşılaştırılabilir ve Karşılaştırıcı Kullanırken Dikkat Edilmesi Gerekenler
- Belirli bir sınıf için standart bir karşılaştırma yapmak için satış yapıyorsanız, karşılaştırılabilir arayüz seçilecek olandır.
- Karşılaştırıcı lambda kullanımına izin verir.
- Hem Comparator hem de Comparable'ı uygulamak için CompareTo() yöntemini kullanabilirsiniz.
- Sıralamada esneklik arıyorsanız karşılaştırıcı arayüzü önerilir
Çözüm
Çoğu gerçek hayat senaryosunda, sıralama yaptığımızda genellikle aklımızda çeşitli parametreler bulunur. Ayrıca, varsayılan sıralamada karşılaştırılabilir sonuçlar kullanıldığından ve dinamik olarak değiştirilemediğinden, gereksinimlerinize göre özelleştirmenize ve farklı sıralama yöntemleri arasından seçim yapmanıza olanak tanıyan Karşılaştırıcı'dan daha az pratiktir. Yalnızca bu nedenle, Comparator, Comparable'dan daha pratik uygulamalar bulur.
Okuyun: Kontrol etmeniz gereken bazı ilginç java projeleri
Java, tam yığın geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik sıkı eğitim, 9+ proje sunan Tam Yığın Yazılım Geliştirmede Yönetici PG Programına göz atın. ve görevler, IIIT-B Mezunları durumu, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.
Programlama dillerinde arayüzler nelerdir?
Java öğrenmek kolay mı?
Java, en deneyimsiz Java geliştiricilerinin bile deneyimli bir geliştirici gibi düşünmesine ve programlar oluşturmasına olanak tanıyan Nesne Yönelimli bir programlama paradigması sunar. Java, bugün de yaygın olarak kullanılan C ve C++ programlama dillerinden kaynaklanmıştır. Java, işlevsellik açısından C ve C++ ile bazı benzerliklere sahip olsa da, çok daha kullanıcı dostu bir dil haline geldi. Nesne yönelimli programlama, mevcut kodun bakımını ve değiştirilmesini kolaylaştırdığından, acemi kodlayıcılar bile kurumsal projeler üzerinde çalışmaya başlayabilir. Java, çalıştırmadan önce hatalar için doğrulandığından, yeni geliştiricilerin öngörülemeyen çalışma zamanı hatalarıyla karşılaşma olasılığı daha düşüktür. Java, programcıları tüm kod öğelerini doğru bir şekilde belirlemeye zorlar ve uygulamalar büyüdükçe hata olasılığını azaltır.
Java'da sıralama neden gereklidir?
Sıralama, bir dizideki öğelerin yerlerini, tümü artan veya azalan düzende olacak şekilde yeniden düzenlemek için bir dizi tekniği ifade eder. İyi bir sıralama algoritması, aynı değere sahip öğelerin sıralanmış dizide aynı sırada kalmasını da sağlamalıdır. Veri yapılarını ve algoritmaları derinlemesine anlamak için sıralama gereklidir. Java bir programlama dili olarak son derece çok yönlüdür ve bir dizi sıralama algoritmasını uygulamak için kullanılabilir. Bu algoritmaların çoğu oldukça çok yönlüdür ve hem özyinelemeli hem de yinelemeli bir şekilde uygulanabilir.