ArrayList von Objekten nach Objektattribut sortieren

7

Ich habe eine Arraylist von Objekten. Diese Objekte haben ein Attribut oder einen Datentyp - 'String'. Ich muss den Arraylist nach dieser Saite sortieren. Wie erreiche ich das?

    
Vishal 27.07.2010, 10:07
quelle

2 Antworten

13

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.

Siehe auch

Verwandte Fragen

Beim Sortieren von List nach verschiedenen Kriterien:

Bei Comparator und Comparable

polygenelubricants 27.07.2010, 10:10
quelle
6

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.

%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:

%Vor%

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%     
ColinD 31.08.2010 19:11
quelle

Tags und Links