Rumah >Java >javaTutorial >Bagaimana untuk Mengisih ArrayList Objek mengikut Tarikh?

Bagaimana untuk Mengisih ArrayList Objek mengikut Tarikh?

Susan Sarandon
Susan Sarandonasal
2024-12-06 15:04:11379semak imbas

How to Sort an ArrayList of Objects by Date?

Mengisih Objek dalam ArrayList mengikut Tarikh

Walaupun banyak contoh menunjukkan pengisihan mengikut abjad dalam ArrayLists, pengisihan mengikut tarikh memberikan cabaran yang unik. Setiap objek dalam ArrayList mungkin mengandungi objek DateTime, yang mempunyai fungsi lt() dan lteq() untuk perbandingan kurang daripada dan kurang daripada atau sama. Untuk menyelesaikan dilema pengisihan ini, pertimbangkan pendekatan berikut:

1. Melaksanakan Antara Muka Sebanding:

Buat kelas objek tersuai yang melaksanakan antara muka Sebanding. Gantikan kaedah compareTo() untuk membandingkan objek DateTime bagi dua objek.

public class MyObject implements Comparable<MyObject> {

    private Date dateTime;

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

2. Menggunakan Pembanding:

Jika mengubah suai model objek tidak diingini, buat pembanding dengan cepat:

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

Mengendalikan Nilai Null:

Untuk mengelakkan NullPointerExceptions, kendalikan objek DateTime nol dalam kaedah compareTo() atau pembanding:

@Override
public int compareTo(MyObject o) {
    if (dateTime == null || o.dateTime == null)
        return 0;
    return dateTime.compareTo(o.dateTime);
}
Collections.sort(myList, new Comparator<MyObject>() {
    @Override
    public int compare(MyObject o1, MyObject o2) {
        if (o1.getDateTime() == null || o2.getDateTime() == null)
            return 0;
        return o1.getDateTime().compareTo(o2.getDateTime());
    }
});

Dengan melaksanakan penyelesaian ini, anda boleh mengisih ArrayList objek anda mengikut tarikh, mendayakan operasi berasaskan tarikh yang cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih ArrayList Objek mengikut Tarikh?. 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