Isih Tatasusunan 2D Menggunakan Tatasusunan.isih
Mengisih tatasusunan berbilang dimensi boleh menjadi tugas yang rumit. Walau bagaimanapun, menggunakan kaedah Arrays.sort Java, adalah mungkin untuk mencapai ini dengan cekap.
Secara khusus, penyelesaiannya melibatkan penggunaan kaedah Arrays#Sort(T[] a, Comparator c) yang terbeban berlebihan, yang mengambil Comparator sebagai hujah kedua. Pembanding ialah objek yang mentakrifkan cara objek dibandingkan. Dalam kes ini, kami ingin membandingkan nilai elemen pertama dalam setiap subarray.
Untuk melaksanakan ini, buat pembanding yang melaksanakan antara muka java.util.Comparator dan mengatasi kaedah compare()nya. Kaedah ini harus membandingkan elemen pertama dua tatasusunan dan mengembalikan -1, 0 atau 1 bergantung pada susunan yang sepatutnya muncul.
Sebagai contoh, pertimbangkan tatasusunan 2D berikut:
double[][] myArr = { {1, 5}, {13, 1.55}, {12, 100.6}, {12.1, .85} };
Untuk mengisih tatasusunan ini dalam tertib menaik berdasarkan nilai elemen pertama dalam setiap subarray, gunakan kod berikut:
java.util.Arrays.sort(myArr, new java.util.Comparator<double[]>() { public int compare(double[] a, double[] b) { return Double.compare(a[0], b[0]); } });
Ini akan menghasilkan tatasusunan disusun berikut:
[ {1, 5}, {12, 100.6}, {12.1, .85}, {13, 1.55} ]
Dalam Java 8 dan lebih baru, anda boleh menggunakan lambdas untuk memudahkan pembanding:
Arrays.sort(array, Comparator.comparingDouble(o -> o[0]));
Atas ialah kandungan terperinci Bagaimana untuk Menyusun Array 2D di Java Menggunakan Arrays.sort?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!