Rumah >Java >javaTutorial >Bagaimana untuk Mengisih Tatasusunan 2D di Jawa mengikut Nilai dalam Lajur Pertama?
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!