Comparable ve Comparator Karşılaştırması
Özel sıralama için Comparable ile Comparator arasındaki farkı öğrenin. compareTo ve harici Comparator'lar üzerinde pratik yapın.
Comparable ve Comparator Karşılaştırması, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 3 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 3 dersten oluşur.
Giriş
Sıralama kurallara ihtiyaç duyar. Karşılaştırılabilir ve karşılaştırıcı, bu kuralları tanımlamanın iki yoludur:
- Karşılaştırılabilir: sınıf compareTo uygular.
- Karşılaştırıcı: sort() işlemine aktarılan ayrı nesnedir.
Karşılaştırılabilir kavramı
Karşılaştırılabilir, bir sınıfın kendi doğal sırasını tanımlamasını sağlar. Collections.sort öğeleri nasıl sıralayacağını bilsin diye compareTo uygulayın.
Kod: karşılaştırılabilir
Burada Person, karşılaştırılabilir arayüzünü uygular ve yaşa göre sıralanır. Bu, doğal sırasını tanımlar.
public class Main {
static class Person implements Comparable<Person> {
String name;
int age;
Person(String n, int a) { name = n; age = a; }
public int compareTo(Person o) {
return this.age - o.age; // order by age
}
public String toString() { return name + "(" + age + ")"; }
}
public static void main(String[] args) {
java.util.List<Person> list = new java.util.ArrayList<>();
list.add(new Person("Ada",30));
list.add(new Person("Bob",25));
java.util.Collections.sort(list);
System.out.println(list); // [Bob(25), Ada(30)]
}
}
Karşılaştırıcı kavramı
Karşılaştırıcı dışarıda tanımlanır. Aynı sınıfı yaş yerine ada göre sıralamak gibi farklı biçimlerde sıralayabilir.
Kod: karşılaştırıcı
Bu karşılaştırıcı ada göre sıralar. Farklı karşılaştırıcılar aynı sınıfta yeniden kullanılabilir.
public class Main {
static class Person {
String name; int age;
Person(String n,int a){ name=n; age=a; }
public String toString(){ return name+"("+age+")"; }
}
public static void main(String[] args) {
java.util.List<Person> list = new java.util.ArrayList<>();
list.add(new Person("Ada",30));
list.add(new Person("Bob",25));
java.util.Comparator<Person> byName = (p1,p2) -> p1.name.compareTo(p2.name);
java.util.Collections.sort(list, byName);
System.out.println(list); // [Ada(30), Bob(25)]
}
}
Kod: ters karşılaştırıcı
Karşılaştırıcılar, burada olduğu gibi azalan sıra da dâhil olmak üzere her türlü kuralı tanımlayabilir.
public class Main {
public static void main(String[] args) {
java.util.List<Integer> nums = new java.util.ArrayList<>();
nums.add(5); nums.add(1); nums.add(3);
java.util.Comparator<Integer> desc = (a,b) -> b - a;
java.util.Collections.sort(nums, desc);
System.out.println(nums); // [5,3,1]
}
}
Karşılaştırılabilir ve karşılaştırıcı karşılaştırması
Hızlı kontrol: Karşılaştırılabilir ve karşılaştırıcı arasındaki temel fark nedir?
Özet
Özet: Karşılaştırılabilir, doğal sırayı sınıfın içinde tanımlar. Karşılaştırıcı ayrıdır ve birçok sıralama stratejisi oluşturabilir.
Sıkça Sorulan Sorular
“Comparable ve Comparator Karşılaştırması” dersi ücretsiz mi?
Evet — “Comparable ve Comparator Karşılaştırması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 3 dersten oluşur.
“Comparable ve Comparator Karşılaştırması” dersinde ne öğreneceğim?
Özel sıralama için Comparable ile Comparator arasındaki farkı öğrenin. compareTo ve harici Comparator'lar üzerinde pratik yapın. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Java Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 2. dersidir.
“Comparable ve Comparator Karşılaştırması” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Eşlemeler ve Sıklık Sayımı
- Comparable ve Comparator Karşılaştırması
- Collections ile Sıralama/Arama