Fabriques de Comparator et ordonnancement fluide
Construisez des règles d'ordonnancement lisibles et composables avec les méthodes de fabrique de Comparator.
Comparaison de Code
✕ 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.
Pourquoi la méthode moderne gagne
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
Support JDK
Fabriques de Comparator et ordonnancement fluide
Disponible
Disponible depuis JDK 8 (mars 2014)
Comment ça fonctionne
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.
Documentation Associée
Preuve