Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menyusun Senarai Objek Secara Fleksibel mengikut Sifat Berbeza?

Bagaimanakah Saya Boleh Menyusun Senarai Objek Secara Fleksibel mengikut Sifat Berbeza?

Barbara Streisand
Lepaskan: 2024-12-04 01:36:10
asal
474 orang telah melayarinya

How Can I Flexibly Sort Lists of Objects by Different Properties?

Mengisih Koleksi Objek Dengan Mudah

Soalan:

Apabila bekerja dengan senarai objek (cth., Orang), bagaimana kita boleh mengisih mengikut perbezaan yang fleksibel sifat (cth., nama, umur, atau negara)?

Jawapan:

Walaupun antara muka Sebanding membenarkan pengisihan mengikut satu sifat, pendekatan yang lebih serba boleh ialah menggunakan pembanding tersuai dengan kaedah Collections.sort. Contoh untuk mengisih kelas Orang:

public class FlexiblePersonComparator implements Comparator<Person> {
    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.name.compareTo(person2.name);
            case Age:
                return person1.age.compareTo(person2.age);
            case Country:
                return person1.country.compareTo(person2.country);
        }
        throw new RuntimeException("Practically unreachable code, can't be thrown");
    }

    public void setSortingBy(Order sortBy) {
        this.sortingBy = sortBy;
    }
}
Salin selepas log masuk

Menggunakan pembanding:

public void sortPersonsBy(FlexiblePersonComparator.Order sortingBy) {
    List<Person> persons = this.persons;  // Useless line for clarification
    FlexiblePersonComparator comparator = new FlexiblePersonComparator();
    comparator.setSortingBy(sortingBy);
    Collections.sort(persons, comparator); // Sorting the list
}
Salin selepas log masuk

Dengan menggunakan pembanding tersuai, anda mendapat fleksibiliti untuk mengisih koleksi objek mengikut mana-mana harta yang diingini, dengan menyediakan penyelesaian yang mudah dan serba boleh untuk menyusun struktur data yang kompleks.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun Senarai Objek Secara Fleksibel mengikut Sifat Berbeza?. 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