So sortieren Sie ein Attribut eines Objekts mithilfe von Sammlungen

8

Guten Tag!

Ich habe einen Objektschüler mit den folgenden Attributen:

%Vor%

Ich habe arrayList verwendet, um die Schülerobjekte zu speichern Mein Problem ist, wie kann ich die StudentList nach Geburtstag mit den Sammlungen sortiert sortieren?.

%Vor%

Wie kann ich es codieren?

Sammlungen.sort (????);

Danke

    
newbie 09.05.2011, 05:02
quelle

6 Antworten

17

Sie können ein Comparator an Collections.sort() um die Sortierung nach Geburtstag zu verwalten:

%Vor%

Sie müssen getBirthday() zu Ihrer Student -Klasse hinzufügen, wenn Sie sie noch nicht haben.

    
WhiteFang34 09.05.2011, 05:07
quelle
4

In Java 8 können Sie die Liste mit einem Einzeiler sortieren, indem Sie verwenden Lambda-Ausdrücke und Komparator . vergleich :

%Vor%

Alternativ können Sie die Methodenreferenz verwenden:

%Vor%     
Stefan Endrullis 09.10.2013 10:21
quelle
2

Hi, das ist ein Beispiel, das Ihnen helfen kann,

zu verstehen %Vor%     
Ankit 09.05.2011 05:05
quelle
1

Sie müssen einen benutzerdefinierten Vergleicher schreiben.

Etwas wie:

%Vor%     
Aaron Gage 09.05.2011 05:09
quelle
0

Hier ist ein Tutorial von Java, um mehr darüber zu erfahren. Ссылка

    
sudmong 09.05.2011 05:19
quelle
0

Das kann eine knifflige Interviewfrage sein:)

Der beste und wiederverwendbarste Weg, den ich gefunden habe, um ein ähnliches Problem zu lösen, war die Implementierung des Interface Comparator und die Erstellung eines benutzerdefinierten Comparators nach meinen Bedürfnissen, der wiederverwendet werden kann.

Ich verlasse hier ein Beispiel, wie man eine ArrayList von Person nach ihrem Namensattribut und auch nach ihrem Genderattribut (die keine lexikographische natürliche Reihenfolge haben) sortiert.

Der Trick bestand darin, eine enum-Klasse mit dem benutzerdefinierten Attribut zu definieren, aus dem ich sortieren wollte. Wenn Sie einen comparator auf dieses enum-Attribut anwenden, wendet die compareTo () -Methode die Reihenfolge entsprechend der natürlichen Reihenfolge an, in der die Werte deklariert sind (in diesem Beispiel männlich, weiblich, andere).

%Vor%     
bruno 16.09.2016 18:22
quelle

Tags und Links