Sortieren von Objekten in ArrayList nach Datum
Während viele Beispiele die alphabetische Sortierung in ArrayLists demonstrieren, stellt das Sortieren nach Datum eine einzigartige Herausforderung dar. Jedes Objekt in einer ArrayList kann ein DateTime-Objekt enthalten, das über die Funktionen lt() und lteq() für Kleiner-als- und Kleiner-gleich-Vergleiche verfügt. Um dieses Sortierdilemma zu lösen, ziehen Sie die folgenden Ansätze in Betracht:
1. Implementieren der Comparable-Schnittstelle:
Erstellen Sie eine benutzerdefinierte Objektklasse, die die Comparable-Schnittstelle implementiert. Überschreiben Sie die Methode „compareTo()“, um die DateTime-Objekte zweier Objekte zu vergleichen.
public class MyObject implements Comparable<MyObject> { private Date dateTime; @Override public int compareTo(MyObject o) { return dateTime.compareTo(o.dateTime); } }
2. Verwenden eines Komparators:
Wenn eine Änderung des Objektmodells unerwünscht ist, erstellen Sie im Handumdrehen einen Komparator:
Collections.sort(myList, new Comparator<MyObject>() { @Override public int compare(MyObject o1, MyObject o2) { return o1.getDateTime().compareTo(o2.getDateTime()); } });
Umgang mit Nullwerten:
Um NullPointerExceptions zu vermeiden, behandeln Sie Null-DateTime-Objekte in der Methode „compareTo()“ oder Komparator:
@Override public int compareTo(MyObject o) { if (dateTime == null || o.dateTime == null) return 0; return dateTime.compareTo(o.dateTime); }
Collections.sort(myList, new Comparator<MyObject>() { @Override public int compare(MyObject o1, MyObject o2) { if (o1.getDateTime() == null || o2.getDateTime() == null) return 0; return o1.getDateTime().compareTo(o2.getDateTime()); } });
Durch die Implementierung dieser Lösungen können Sie Ihre ArrayList von Objekten nach Datum sortieren und so effiziente datumsbasierte Vorgänge ermöglichen.
Das obige ist der detaillierte Inhalt vonWie sortiere ich eine ArrayList von Objekten nach Datum?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!