Rumah >Java >javaTutorial >Bagaimanakah Saya Mengisih Senarai Array Objek mengikut Tarikh di Jawa?

Bagaimanakah Saya Mengisih Senarai Array Objek mengikut Tarikh di Jawa?

Linda Hamilton
Linda Hamiltonasal
2024-12-06 18:19:16196semak imbas

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

Mengisih Objek dalam ArrayList mengikut Tarikh

Dengan penyelidikan yang meluas mendedahkan banyak contoh tentang pengisihan abjad unsur dalam ArrayList, ia masih perlu untuk meneroka bagaimana elemen boleh diisih mengikut tarikh. Artikel ini menyelidiki pelaksanaan mekanisme pengisihan sedemikian.

Melaksanakan Antara Muka Sebanding

Satu pendekatan melibatkan pelaksanaan antara muka Sebanding dalam objek yang hendak diisih. Dengan berbuat demikian, objek itu boleh dibandingkan dengan objek lain daripada jenis yang sama. Begini caranya:

public class MyObject implements Comparable<MyObject> {

  private Date dateTime;

  // getters and setters

  @Override
  public int compareTo(MyObject o) {
    return getDateTime().compareTo(o.getDateTime());
  }
}

Isih Menggunakan Collections.sort()

Setelah objek boleh dibandingkan, ia boleh diisih menggunakan kaedah Collections.sort():

Collections.sort(myList);

Tersuai Pembanding

Kadangkala, mengubah suai model mungkin tidak diingini. Dalam kes sedemikian, pembanding tersuai boleh dibuat dengan segera:

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

Mengendalikan Nilai Null

Adalah penting untuk mempertimbangkan kemungkinan nilai nol dalam DateTime padang. Untuk mengelakkan NullPointerExceptions, adalah dinasihatkan untuk mengendalikan nilai nol seperti berikut:

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

Atau dalam pembanding tersuai:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Mengisih Senarai Array Objek mengikut Tarikh di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn