Mengisih Tatasusunan 2D Menggunakan Tatasusunan Java.sort()
Arrays.sort() ialah fungsi pengisihan serba boleh dalam Java yang boleh digunakan untuk pelbagai jenis data, termasuk tatasusunan 2D. Dalam senario khusus ini, kami menyasarkan untuk mengisih tatasusunan berganda 2D berdasarkan nilai dalam lajur pertama.
Untuk mencapai ini tanpa melaksanakan algoritma pengisihan tersuai, kami boleh memanfaatkan versi terlampau beban Arrays#Sort(T [] a, Pembanding c). Dengan menyediakan Pembanding sebagai hujah kedua, kita boleh menentukan kriteria pengisihan kita sendiri.
Untuk tatasusunan yang diberikan:
double[][] myArr = new double[mySize][2]; // Initial array contents
1 5 13 1.55 12 100.6 12.1 .85
Kita boleh mencipta pembanding yang membandingkan elemen pertama setiap baris:
Comparator<double[]> comparator = new Comparator<double[]>() { @Override public int compare(double[] a, double[] b) { return Double.compare(a[0], b[0]); } };
Kemudian, kita boleh mengisih tatasusunan menggunakan ini pembanding:
java.util.Arrays.sort(myArr, comparator);
Keputusan:
1 5 12 100.6 12.1 .85 13 1.55
JAVA-8:
Di Java 8 dan kemudian, kita boleh memudahkan pembanding menggunakan ungkapan lambda:
Arrays.sort(myArr, Comparator.comparingDouble(o -> o[0]));
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan Berganda 2D mengikut Lajur Pertama di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!