Collections Başlangıç

Comparator fabrika metotları ve akıcı sıralama

Comparator fabrika metotlarıyla okunabilir ve birleştirilebilir sıralama kuralları oluşturun.

✕ 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.
🧩

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ıç
Comparator fabrika metotları ve akıcı sıralama
Mevcut

JDK 8'den itibaren kullanılabilir (Mart 2014)

Comparator fabrika metotları sıralamayı bildirimsel olarak ifade eder ve elle dallanma yazmadan birincil ve ikincil anahtarları birleştirir.