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

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

Patricia Arquette
Patricia Arquetteasal
2024-11-13 01:40:02903semak imbas

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}
};

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]);
  }
});

Ini akan menghasilkan tatasusunan disusun berikut:

[
  {1, 5},
  {12, 100.6},
  {12.1, .85},
  {13, 1.55}
]

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

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

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!

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