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
Lepaskan: 2024-12-06 18:19:16
asal
153 orang telah melayarinya

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());
  }
}
Salin selepas log masuk

Isih Menggunakan Collections.sort()

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

Collections.sort(myList);
Salin selepas log masuk

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());
  }
});
Salin selepas log masuk

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());
  }
}
Salin selepas log masuk

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());
  }
});
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan