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

Wie sortiere ich eine ArrayList von Objekten nach Datum in Java?

Linda Hamilton
Freigeben: 2024-12-06 18:19:16
Original
153 Leute haben es durchsucht

How Do I Sort an ArrayList of Objects by Date in Java?

Sortieren von Objekten in ArrayList nach Datum

Angesichts umfangreicher Untersuchungen, die zahlreiche Beispiele für die alphabetische Sortierung von Elementen in einer ArrayList ergeben haben, bleibt es notwendig, dies zu erforschen wie Elemente nach Datum sortiert werden können. Dieser Artikel befasst sich mit der Implementierung eines solchen Sortiermechanismus.

Implementierung der Comparable-Schnittstelle

Ein Ansatz besteht darin, die Comparable-Schnittstelle innerhalb des zu sortierenden Objekts zu implementieren. Dadurch kann das Objekt mit anderen Objekten des gleichen Typs verglichen werden. So geht's:

public class MyObject implements Comparable<MyObject> {

  private Date dateTime;

  // getters and setters

  @Override
  public int compareTo(MyObject o) {
    return getDateTime().compareTo(o.getDateTime());
  }
}
Nach dem Login kopieren

Sortieren mit Collections.sort()

Sobald das Objekt vergleichbar ist, kann es mit der Methode Collections.sort() sortiert werden:

Collections.sort(myList);
Nach dem Login kopieren

Benutzerdefinierter Vergleicher

Manchmal Eine Änderung des Modells kann unerwünscht sein. In solchen Fällen kann im Handumdrehen ein benutzerdefinierter Komparator erstellt werden:

Collections.sort(myList, new Comparator<MyObject>() {
  public int compare(MyObject o1, MyObject o2) {
      return o1.getDateTime().compareTo(o2.getDateTime());
  }
});
Nach dem Login kopieren

Umgang mit Nullwerten

Es ist wichtig, die Möglichkeit von Nullwerten in DateTime zu berücksichtigen Feld. Um NullPointerExceptions zu vermeiden, empfiehlt es sich, Nullwerte wie folgt zu behandeln:

public class MyObject implements Comparable<MyObject> {

  private Date dateTime;

  // getters and setters

  @Override
  public int compareTo(MyObject o) {
    if (getDateTime() == null || o.getDateTime() == null)
      return 0;
    return getDateTime().compareTo(o.getDateTime());
  }
}
Nach dem Login kopieren

Oder im benutzerdefinierten Komparator:

Collections.sort(myList, new Comparator<MyObject>() {
  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

Das obige ist der detaillierte Inhalt vonWie sortiere ich eine ArrayList von Objekten nach Datum in Java?. 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