Wie man ein Attribut eines Objekts verwenden von Sammlungen
Guten Tag!
Ich habe ein Objekt student mit den folgenden Attributen:
class Student
String name
Date birthday
Ich verwendet arrayList zum speichern der Student-Objekte
Mein problem ist, wie kann ich die Sortierung der StudentList von Geburtstag über die collecitons Sortieren?.
List <Student> studentList = new ArrayList<Student>();
Wie kann ich den code?
Sammlungen.Art(????);
Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ein
Comparator
zuSammlungen.sort()
zu handhaben, das Sortieren nach Geburtstag:Müssen Sie
getBirthday()
zu IhremStudent
Klasse, wenn Sie es nicht haben bereits.In Java 8 können Sie Sortieren die Liste mit einer one-liner mit Lambda-Ausdrücke und Komparator.vergleichen:
Alternativ können Sie die Methode verwenden, Referenz:
Hallo dies ist ein Beispiel, das Ihnen helfen kann, zu verstehen,
Müssen Sie schreiben eine benutzerdefinierte Komparator.
Etwas wie:
Hier ist das tutorial von java, um mehr darüber zu erfahren.
http://download.oracle.com/javase/tutorial/collections/interfaces/order.html
Dies kann eine heikle interview-Frage 🙂
Die besten und wiederverwendbare Möglichkeit, die ich gefunden habe, lösen ein ähnliches problem war die Implementierung der Schnittstelle Comparator und auch das erstellen von benutzerdefinierten Komparator nach meinen Bedürfnissen, die wiederverwendet werden können.
Lasse ich hier ein Beispiel, wie das Sortieren einer ArrayList mit der Person, nach deren name-Attribut, und auch nach Ihrem Geschlecht-Attribut (die haben keine Lexikographie der natürlichen Reihenfolge).
Der trick war die Definition einer enum-Klasse mit dem benutzerdefinierten Attribut, von dem ich wollte, zu Sortieren. Anwenden einer benutzerdefinierten Komparator auf, dass enum-Attribut, wird die compareTo () - Methode anwenden, um nach der natürlichen Ordnung, in der die Werte erklärt werden (in diesem Beispiel Männlich, weiblich, andere).