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; } }
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); }
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!