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
Linda HamiltonOriginal
2024-12-06 18:19:16168Durchsuche

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());
  }
}

Sortieren mit Collections.sort()

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

Collections.sort(myList);

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());
  }
});

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());
  }
}

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());
  }
});

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!

Stellungnahme:
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