Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Menyusun Array 2D di Java Menggunakan Arrays.sort?

Patricia Arquette
Lepaskan: 2024-11-13 01:40:02
asal
913 orang telah melayarinya

How to Sort a 2D Array in Java Using Arrays.sort?

Isih Tatasusunan 2D Menggunakan Tatasusunan.isih

Mengisih tatasusunan berbilang dimensi boleh menjadi tugas yang rumit. Walau bagaimanapun, menggunakan kaedah Arrays.sort Java, adalah mungkin untuk mencapai ini dengan cekap.

Secara khusus, penyelesaiannya melibatkan penggunaan kaedah Arrays#Sort(T[] a, Comparator c) yang terbeban berlebihan, yang mengambil Comparator sebagai hujah kedua. Pembanding ialah objek yang mentakrifkan cara objek dibandingkan. Dalam kes ini, kami ingin membandingkan nilai elemen pertama dalam setiap subarray.

Untuk melaksanakan ini, buat pembanding yang melaksanakan antara muka java.util.Comparator dan mengatasi kaedah compare()nya. Kaedah ini harus membandingkan elemen pertama dua tatasusunan dan mengembalikan -1, 0 atau 1 bergantung pada susunan yang sepatutnya muncul.

Sebagai contoh, pertimbangkan tatasusunan 2D berikut:

double[][] myArr = {
  {1, 5},
  {13, 1.55},
  {12, 100.6},
  {12.1, .85}
};
Salin selepas log masuk

Untuk mengisih tatasusunan ini dalam tertib menaik berdasarkan nilai elemen pertama dalam setiap subarray, gunakan kod berikut:

java.util.Arrays.sort(myArr, new java.util.Comparator<double[]>() {
  public int compare(double[] a, double[] b) {
    return Double.compare(a[0], b[0]);
  }
});
Salin selepas log masuk

Ini akan menghasilkan tatasusunan disusun berikut:

[
  {1, 5},
  {12, 100.6},
  {12.1, .85},
  {13, 1.55}
]
Salin selepas log masuk

Dalam Java 8 dan lebih baru, anda boleh menggunakan lambdas untuk memudahkan pembanding:

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

Atas ialah kandungan terperinci Bagaimana untuk Menyusun Array 2D di Java Menggunakan Arrays.sort?. 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