Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mengisih Tatasusunan Berganda 2D mengikut Lajur Pertama di Jawa?

Bagaimana untuk Mengisih Tatasusunan Berganda 2D mengikut Lajur Pertama di Jawa?

Linda Hamilton
Linda Hamiltonasal
2024-11-10 18:46:02299semak imbas

How to Sort a 2D Double Array by the First Column in Java?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn