Collections Początkujący

Fabryki komparatorów i płynne definiowanie porządku

Twórz czytelne, komponowalne reguły porządkowania za pomocą metod fabrycznych Comparator.

✕ 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));
Widzisz problem z tym kodem? Daj nam znać.
🧩

Komponowalność

Reguły porządkowania można naturalnie łączyć w łańcuch.

👁

Łatwiejszy przegląd

Klucze sortowania i ich priorytety są jawne.

🐛

Bezpieczniejsze porównania

Wyspecjalizowane metody pomocnicze eliminują podatne na błędy komparatory oparte na działaniach arytmetycznych.

Stare podejście
Anonimowy Comparator
Nowoczesne podejście
Fabryki Comparator
Od JDK
8
Poziom trudności
Początkujący
Fabryki komparatorów i płynne definiowanie porządku
Dostępne

Dostępne od JDK 8 (marzec 2014)

Fabryki komparatorów wyrażają porządek deklaratywnie i łączą klucze główne oraz dodatkowe bez ręcznie pisanych rozgałęzień.