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

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-11 21:33:03581semak imbas

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

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!

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