Collections Débutant

Construisez des règles d'ordonnancement lisibles et composables avec les méthodes de fabrique de 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));
Un problème avec ce code ? Dites-le nous.
🧩

Composable

Les règles d'ordonnancement s'enchaînent naturellement.

👁

Plus facile à relire

Les clés de tri et leur priorité sont explicites.

🐛

Comparaisons plus sûres

Les méthodes spécialisées évitent les comparateurs arithmétiques sujets aux erreurs.

Ancienne Approche
Comparator anonyme
Approche Moderne
Fabriques de Comparator
Depuis JDK
8
Difficulté
Débutant
Fabriques de Comparator et ordonnancement fluide
Disponible

Disponible depuis JDK 8 (mars 2014)

Les fabriques de Comparator expriment l'ordonnancement de façon déclarative et composent des clés principales et secondaires sans branchements écrits à la main.