Isih Tatasusunan 2D berdasarkan Nilai Lajur Pertama menggunakan Tatasusunan Java.sort
Di Jawa, menyusun tatasusunan 2D berdasarkan nilai suatu lajur tertentu boleh dicapai menggunakan kaedah Arrays.sort(T[] a, Comparator c) terbeban yang menerima Comparator sebagai hujah kedua.
Pertimbangkan contoh berikut, di mana kita mempunyai tatasusunan 2D myArr yang mengandungi pasangan daripada beregu:
double[][] myArr = new double[mySize][2]; // populate myArr with data
Untuk mengisih tatasusunan ini berdasarkan nilai lajur pertama, kita boleh menggunakan antara muka Pembanding untuk mentakrifkan peraturan perbandingan tersuai:
java.util.Comparator<double[]> comparator = new java.util.Comparator<double[]>() { public int compare(double[] a, double[] b) { return Double.compare(a[0], b[0]); } };
Kami kemudiannya boleh lulus ini Pembanding kepada kaedah Arrays.sort:
java.util.Arrays.sort(myArr, comparator);
Sebagai alternatif, dalam Java 8 atau lebih baru, kita boleh menggunakan fungsi lambda dan bukannya kelas dalaman tanpa nama untuk Comparator:
Arrays.sort(myArr, Comparator.comparingDouble(o -> o[0]));
Selepas mengisih, myArr akan diisih berdasarkan nilai dalam lajur pertama. Hasilnya ialah:
[ {1.0, 5.0}, {12.0, 100.6}, {12.1, 0.85}, {13.0, 1.55} ]
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan 2D di Jawa mengikut Nilai dalam Lajur Pertama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!