Heim > Java > javaLernprogramm > Wie sortiere ich ArrayList-Objekte nach Datum in Java?

Wie sortiere ich ArrayList-Objekte nach Datum in Java?

DDD
Freigeben: 2024-12-07 19:14:13
Original
411 Leute haben es durchsucht

How to Sort ArrayList Objects by Date in Java?

ArrayList-Objekte nach Datum sortieren

Beim Organisieren von Daten in ArrayList-Objekten kann es erforderlich sein, die Elemente nach Datum statt alphabetisch zu sortieren . Dieser Artikel bietet Lösungen, um dies mit Objektkomparatoren und On-the-Fly-Komparatoren zu erreichen.

Implementieren von Objektkomparatoren

Um Objekte nach Datum vergleichbar zu machen, definieren Sie einen Benutzerdefiniert Komparatorklasse, die die Comparable-Schnittstelle implementiert. Überschreiben Sie innerhalb dieser Klasse die Methode „compareTo“, um die DateTime-Objekte der beiden Objekte zu vergleichen. Zum Beispiel:

public static class MyObject implements Comparable<MyObject> {

  private Date dateTime;

  public Date getDateTime() {
    return dateTime;
  }

  public void setDateTime(Date datetime) {
    this.dateTime = datetime;
  }

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

Sortieren Sie dann die ArrayList mit Collections.sort:

Collections.sort(myList);
Nach dem Login kopieren

Erstellen von On-the-Fly-Komparatoren

Manchmal ist eine Änderung des Objektmodells nicht möglich. Erstellen Sie in solchen Fällen einen On-the-Fly-Komparator mit einer anonymen inneren Klasse oder einem Lambda-Ausdruck:

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

Um Stabilität zu gewährleisten, behandeln Sie Nullwerte innerhalb des Komparators, indem 0 für Nullwerte zurückgegeben wird:

public static class MyObject implements Comparable<MyObject> {

  private Date dateTime;

  public Date getDateTime() {
    return dateTime;
  }

  public void setDateTime(Date datetime) {
    this.dateTime = datetime;
  }

  @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 laufenden Betrieb 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

Durch die Implementierung dieser Techniken können Sie ArrayList-Objekte effizient nach Datum sortieren, sei es durch Ändern des Objektmodells oder durch die Verwendung von On-the-Fly-Komparatoren.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ArrayList-Objekte 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage