Comparator fabrika metotları ve akıcı sıralama
Comparator fabrika metotlarıyla okunabilir ve birleştirilebilir sıralama kuralları oluşturun.
Kod Karşılaştırması
✕ Anonymous comparator
people.sort(new Comparator<Person>() {
@Override
public int compare(Person a, Person b) {
int byName = a.name().compareTo(b.name());
return byName != 0 ? byName : Integer.compare(a.age(), b.age());
}
});
✓ Java 8+
people.sort(Comparator.comparing(Person::name)
.thenComparingInt(Person::age));
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Birleştirilebilir
Sıralama kuralları doğal biçimde zincirlenir.
İncelemesi daha kolay
Sıralama anahtarları ve öncelikleri açıktır.
Daha güvenli karşılaştırmalar
Özelleştirilmiş yardımcılar, hataya açık aritmetik comparator'lardan kaçınır.
Eski Yaklaşım
Anonim Comparator
Modern Yaklaşım
Comparator fabrika metotları
JDK'dan itibaren
8
Zorluk
Başlangıç
JDK Desteği
Comparator fabrika metotları ve akıcı sıralama
Mevcut
JDK 8'den itibaren kullanılabilir (Mart 2014)
Nasıl çalışır
Comparator fabrika metotları sıralamayı bildirimsel olarak ifade eder ve elle dallanma yazmadan birincil ve ikincil anahtarları birleştirir.
İlgili Belgeler
Kanıt