Menggunakan Comparator dalam Java untuk Isih
Antara muka Pembanding Java ialah alat yang berkuasa untuk menyesuaikan gelagat pengisihan objek koleksi. Ia memudahkan untuk mengisih data mengikut kriteria tertentu, di luar antara muka Sebanding lalai.
Memahami Antara Muka Pembanding
Antara muka Pembanding mentakrifkan satu kaedah, bandingkan( ), yang mengambil dua objek dan mengembalikan integer:
Penggunaan Pembanding
Untuk menggunakan Pembanding dengan koleksi, hanya luluskan contoh Comparator sebagai hujah kedua kepada kaedah pengisihan koleksi seperti Collections.sort(). Contohnya:
List<MyObject> myObjects = new ArrayList<>(); Collections.sort(myObjects, new MyComparator());
Tempat MyComparator melaksanakan Comparator
Menyelesaikan ClassCastException
Dalam kod yang anda berikan, Exception in thread "main" java.lang Ralat .ClassCastException berlaku kerana kelas Orang anda melaksanakan antara muka Comparator dan bukannya Comparable. Untuk menyelesaikan isu ini, alih keluar baris Comparator implement daripada kelas People.
Kelas Comparator yang berasingan harus dibuat untuk mengendalikan logik pengisihan. Contohnya:
public class PeopleComparator implements Comparator<People> { @Override public int compare(People p1, People p2) { return p1.getId() - p2.getId(); } }
Dan gunakannya seperti berikut:
Collections.sort(peps, new PeopleComparator());
Nota Tambahan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Antara Muka Pembanding Java untuk Isih Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!