Rumah > Java > javaTutorial > Bagaimana untuk Mengisih Senarai Objek Tersuai mengikut Pelbagai Harta di Jawa?

Bagaimana untuk Mengisih Senarai Objek Tersuai mengikut Pelbagai Harta di Jawa?

Susan Sarandon
Lepaskan: 2024-11-30 13:31:11
asal
231 orang telah melayarinya

How to Sort a List of Custom Objects by Multiple Properties in Java?

Cara Isih Koleksi Objek Tersuai mengikut Berbilang Sifat

Collections.sort terbukti berguna untuk mengisih jenis data mudah seperti rentetan. Walau bagaimanapun, apabila berurusan dengan objek tersuai, pengisihan berdasarkan sifat tertentu boleh menjadi mencabar.

Pertimbangkan kelas Orang dengan sifat seperti nama, umur dan negara. Untuk mengisih senarai objek Orang, kami memerlukan pendekatan tersuai.

Memperkenalkan Antara Muka Pembanding

Penyelesaian terletak pada pelaksanaan antara muka Pembanding, yang menyediakan kaedah perbandingan untuk menentukan susunan pengisihan. Dengan mengatasi kaedah compare(), kita boleh menentukan logik pengisihan berdasarkan sifat yang diingini.

public class PersonComparator implements Comparator<Person> {

    // Define the sorting order as an enum
    public enum Order { NAME, AGE, COUNTRY }

    private Order sortingBy = Order.NAME;

    @Override
    public int compare(Person person1, Person person2) {
        switch (sortingBy) {
            case NAME:
                return person1.getName().compareTo(person2.getName());
            case AGE:
                return person1.getAge().compareTo(person2.getAge());
            case COUNTRY:
                return person1.getCountry().compareTo(person2.getCountry());
            default:
                throw new RuntimeException("Invalid sorting order");
        }
    }

    // Method to set the sorting order
    public void setSortingBy(Order sortingBy) {
        this.sortingBy = sortingBy;
    }
}
Salin selepas log masuk

Menggunakan Comparator

Untuk mengisih senarai orang mengikut a harta tertentu, kita boleh membuat contoh PersonComparator dan menetapkan pengisihan yang dikehendaki tertib.

public void sortPersonList(Order sortingBy) {
    PersonComparator comparator = new PersonComparator();
    comparator.setSortingBy(sortingBy);
    Collections.sort(personList, comparator);
}
Salin selepas log masuk

Dengan memanggil kaedah sortPersonList() dengan susunan pengisihan yang sesuai, kita boleh mencapai senarai diisih berdasarkan sifat yang ditentukan. Pendekatan ini memberikan fleksibiliti dan membolehkan pengisihan mengikut berbilang sifat tanpa mengubah suai kelas Orang itu sendiri.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Senarai Objek Tersuai mengikut Pelbagai Harta 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