Rumah >Java >javaTutorial >Bagaimanakah kaedah Arrays.sort() dalam Java menyusun tatasusunan mengikut pembanding tersuai?
Bagaimanakah kaedah Arrays.sort() dalam Java mengisih tatasusunan mengikut pembanding tersuai?
Di Java, kaedah Arrays.sort() ialah kaedah yang sangat berguna untuk mengisih tatasusunan. Secara lalai, kaedah ini disusun mengikut tertib menaik. Tetapi kadangkala, kita perlu mengisih tatasusunan mengikut peraturan yang ditentukan sendiri. Pada masa ini, anda perlu menggunakan pembanding tersuai (Comparator).
Pembanding tersuai ialah kelas yang melaksanakan antara muka Pembanding, yang boleh menentukan peraturan perbandingan mengikut keperluan khusus. Pembanding tersuai boleh mengisih objek dalam apa jua jenis, termasuk jenis asas dan jenis tersuai.
Seterusnya, saya akan memperkenalkan cara menggunakan pembanding tersuai untuk mengisih kaedah Arrays.sort() dalam Java dan menyediakan beberapa kod sampel untuk menggambarkan.
Untuk menentukan pembanding tersuai, anda hanya perlu melaksanakan antara muka Pembanding dan mengatasi kaedah bandingkan. Kaedah perbandingan mempunyai dua parameter. Kita perlu mentakrifkan peraturan perbandingan dalam kaedah ini obj1 > obj2, mengembalikan integer positif
public class MyComparator implements Comparator<T> { @Override public int compare(T o1, T o2) { // 你的自定义比较规则 return 0; } }
public static <T> void sort(T[] a, Comparator<? super T> c)
Contoh kod
Sekarang, mari lihat contoh khusus Katakan kita mempunyai kelas Pelajar ini mengandungi dua pembolehubah ahli: nama dan umur. Sekarang, jika kita ingin mengisih tatasusunan Pelajar daripada umur terkecil hingga terbesar, kita perlu menentukan pembanding tersuai. Kod sampel adalah seperti berikut:public class StudentComparator implements Comparator<Student> { @Override public int compare(Student o1, Student o2) { return o1.age - o2.age; } }Dalam kod di atas, kami mentakrifkan kelas StudentComparator, yang melaksanakan antara muka Comparator
public class Main { public static void main(String[] args) { Student[] students = new Student[3]; students[0] = new Student("Tom", 20); students[1] = new Student("Jack", 18); students[2] = new Student("Lucy", 22); Arrays.sort(students, new StudentComparator()); for (Student student : students) { System.out.println(student.name + " " + student.age); } } }
Jack 18 Tom 20 Lucy 22Dapat dilihat daripada hasil bahawa mengikut peraturan yang kami takrifkan, tatasusunan Pelajar disusun dari kecil ke besar mengikut umur.
Ringkasan
Kaedah Arrays.sort() ialah kaedah yang sangat berguna yang boleh mengisih sebarang jenis tatasusunan. Apabila anda perlu mengisih tatasusunan mengikut peraturan yang anda tentukan sendiri, anda hanya perlu melaksanakan antara muka Pembanding dan menulis semula kaedah bandingkan. Proses pelaksanaan khusus adalah seperti yang dinyatakan di atas, saya harap ia akan membantu semua orang.Atas ialah kandungan terperinci Bagaimanakah kaedah Arrays.sort() dalam Java menyusun tatasusunan mengikut pembanding tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!