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!