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

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

Linda Hamilton
Lepaskan: 2024-11-10 18:46:02
asal
318 orang telah melayarinya

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
Salin selepas log masuk
1      5
13     1.55
12     100.6
12.1   .85
Salin selepas log masuk

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]);
    }
};
Salin selepas log masuk

Kemudian, kita boleh mengisih tatasusunan menggunakan ini pembanding:

java.util.Arrays.sort(myArr, comparator);
Salin selepas log masuk

Keputusan:

1      5
12     100.6
12.1   .85
13     1.55
Salin selepas log masuk

JAVA-8:

Di Java 8 dan kemudian, kita boleh memudahkan pembanding menggunakan ungkapan lambda:

Arrays.sort(myArr, Comparator.comparingDouble(o -> o[0]));
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan