Rumah > Java > javaTutorial > teks badan

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

Mary-Kate Olsen
Lepaskan: 2024-11-11 21:33:03
asal
501 orang telah melayarinya

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

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
Salin selepas log masuk

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

Kami kemudiannya boleh lulus ini Pembanding kepada kaedah Arrays.sort:

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

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

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

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!

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