Mengisih Objek ArrayList mengikut Tarikh: Panduan Komprehensif
Dalam pengaturcaraan Java, banyak senario melibatkan kerja dengan koleksi objek, termasuk ArrayLists. Satu keperluan biasa ialah mengisih objek ini berdasarkan kriteria tertentu. Walaupun susunan abjad sering ditemui, artikel ini memfokuskan pada tugas yang lebih khusus untuk mengisih objek mengikut tarikh.
Memahami Masalah
Sampel kod yang disediakan menunjukkan pemahaman tentang kaedah perbandingan objek DateTime (lt() dan lteq()) tetapi mencari panduan tentang perkara yang perlu dilakukan dalam blok if untuk melengkapkan pengisihan operasi.
Penyelesaian: Melaksanakan Sebanding dan Isih
Satu pendekatan ialah menjadikan objek itu sendiri setanding. Ini melibatkan pelaksanaan antara muka Sebanding dan menyediakan kaedah compareTo yang membandingkan nilai DateTime:
public static class MyObject implements Comparable<MyObject> { private Date dateTime; @Override public int compareTo(MyObject o) { return getDateTime().compareTo(o.getDateTime()); } }
Setelah dilaksanakan, pengisihan boleh dilakukan menggunakan:
Collections.sort(myList);
Alternatif: Menggunakan Pembanding
Kadangkala, mengubah suai model adalah tidak diingini. Dalam kes sedemikian, pembanding boleh dibuat dengan cepat:
Collections.sort(myList, new Comparator<MyObject>() { public int compare(MyObject o1, MyObject o2) { return o1.getDateTime().compareTo(o2.getDateTime()); } });
Mengendalikan Nilai Null
Nilai null boleh menyebabkan NullPointerExceptions semasa perbandingan. Untuk mengelakkan ini, kedua-dua pendekatan boleh diubah suai untuk mengendalikan nulls:
@Override public int compareTo(MyObject o) { if (getDateTime() == null || o.getDateTime() == null) return 0; return getDateTime().compareTo(o.getDateTime()); }
Kesimpulan
Mengisih objek ArrayList mengikut tarikh memerlukan pemahaman kaedah perbandingan yang tersedia dan melaksanakan Comparable atau menggunakan pembanding. Mengendalikan nilai nol memastikan gelagat pengisihan yang stabil dan konsisten.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih ArrayList Objek mengikut Tarikh di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!