Comparator-Factories und fluente Sortierung
Lesbare, kombinierbare Sortierregeln mit den Factory-Methoden von Comparator erstellen.
Code-Vergleich
✕ 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));
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Kombinierbar
Sortierregeln lassen sich auf natürliche Weise verketten.
Leichter zu prüfen
Sortierschlüssel und Priorität sind explizit.
Sicherere Vergleiche
Spezialisierte Hilfsmethoden vermeiden fehleranfällige arithmetische Comparatoren.
Alter Ansatz
Anonymer Comparator
Moderner Ansatz
Comparator-Factories
Seit JDK
8
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Comparator-Factories und fluente Sortierung
Verfügbar
Verfügbar seit JDK 8 (März 2014)
Wie es funktioniert
Comparator-Factories drücken Sortierungen deklarativ aus und kombinieren primäre und sekundäre Schlüssel ohne handgeschriebene Verzweigungen.
Zugehörige Dokumentation
Beweis