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

Bagaimana untuk Mengisih ArrayList Objek mengikut Tarikh?

Susan Sarandon
Lepaskan: 2024-12-06 15:04:11
asal
344 orang telah melayarinya

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

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

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

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!

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