Collections Principiante

Crea regole di ordinamento leggibili e componibili con i metodi factory di 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));
Vedi un problema con questo codice? Faccelo sapere.
🧩

Componibile

Le regole di ordinamento si concatenano in modo naturale.

👁

Più facile da revisionare

Le chiavi di ordinamento e la loro priorità sono esplicite.

🐛

Confronti più sicuri

Gli helper specializzati evitano comparatori aritmetici soggetti a errori.

Approccio Vecchio
Comparator anonimo
Approccio Moderno
Factory di Comparator
Dal JDK
8
Difficoltà
Principiante
Factory di Comparator e ordinamento fluente
Disponibile

Disponibile dal JDK 8 (marzo 2014)

Le factory di Comparator esprimono l'ordinamento in modo dichiarativo e compongono chiavi primarie e secondarie senza scrivere manualmente diramazioni.