Heim > Java > javaLernprogramm > Wie sortiere ich eine ArrayList von Objekten nach Datum?

Wie sortiere ich eine ArrayList von Objekten nach Datum?

Susan Sarandon
Freigeben: 2024-12-06 15:04:11
Original
344 Leute haben es durchsucht

How to Sort an ArrayList of Objects by Date?

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);
    }
}
Nach dem Login kopieren

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());
    }
});
Nach dem Login kopieren

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);
}
Nach dem Login kopieren
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());
    }
});
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage