Sie müssen eine Comparator<MyObject>
schreiben und Collections.sort(List<T>, Comparator<? super T>
, um Ihre List
zu sortieren.
Oder Ihr MyObject
kann auch implements Comparable<MyObject>
, definieren Sie eine natürliche Reihenfolge , die auf Ihrem spezifischen Attribut vergleicht, und verwenden Sie dann Collections.sort(List<T>
statt.
Beim Sortieren von List
nach verschiedenen Kriterien:
Bei Comparator
und Comparable
Eine weitere gute Möglichkeit, dies zu tun, ist etwas flexibler, wenn Sie mehr als eine Eigenschaft eines Objekts verwenden möchten, für das Sie möglicherweise eine Sortierung vornehmen möchten: Guava " Bestellung Klasse mit der Option onResultOf(Function)
. Dies ist ideal für die Sortierung nach Eigenschaften seit einer Funktion kann verwendet werden, um eine bestimmte Eigenschaft eines Objekts abzurufen und zurückzugeben.
Stellen Sie sich für ein einfaches Beispiel eine Klasse Person
mit String getFirstName()
und String getLastName()
vor.
Das obige sortiert die Liste nach dem Vornamen.
Um es besser zu lesen, möchten Sie vielleicht die Funktionen definieren, die Sie als public static final
Felder in der Klasse Person
verwenden möchten. Dann könnten Sie nach Nachnamen wie folgt sortieren:
Als unterhaltsame Nebenbemerkung wird dies in Java 8 mit Lambda-Ausdrücken und Methodenreferenzen viel einfacher. Sie können so etwas schreiben, ohne irgendwelche anonymen inneren Klassen oder statischen Endfelder definieren zu müssen:
%Vor%