Bagaimana saya mengurutkan array 2d di Java? [duplikat]
Nov 19 2020
Jadi saya memiliki array 2d Di Jawa yang merupakan String
String a[][] = new String[3][4]
a[0][0] = "John";
a[0][1] = "Doe";
a[0][2] ="B";
a[0][3] ="999";
a[1][0] ="Bob";
a[1][1] ="Smith";
a[1][2] ="Q";
a[1][3] ="420";
a[2][0] ="Name";
a[2][1] ="Here";
a[2][2] ="T";
a[2][3] ="123";
Bagaimana cara saya mengurutkan baris menurut abjad?
Saya mencoba Arrays.sort(a), tetapi itu hanya mengembalikan kesalahan. Dan aku merasa ini akan menjadi lebih rumit.
EDIT: Outputnya harus
Bob Smith Q 420 John Doe B 999 Nama Di Sini T 123
Saya sudah memiliki kode untuk mencetaknya berfungsi dengan baik, hanya perlu mengurutkan menurut abjad.
Jawaban
3 RohanKumar Nov 19 2020 at 07:38
Jika Anda hanya ingin mengurutkan baris, menurut saya bisa dilakukan seperti ini:
Arrays.sort(a, (o1, o2) -> {
String firstO1Element = o1[0];
String firstO2Element = o2[0];
return firstO1Element.compareTo(firstO2Element);
});
Ini memberikan hasil sebagai berikut:
Bob Smith Q 420
John Doe B 999
Name Here T 123
Laugslander Nov 19 2020 at 07:33
Anda dapat mengatasi masalah ini dengan aliran:
String[] result = Arrays.stream(a)
.map(inner -> String.join(" ", inner))
.sorted()
.toArray(String[]::new);
LuthermillaMuculadosReis Nov 19 2020 at 07:45
Coba ini
Arrays.sort(a, (b, c) -> b[0] - c[0]);
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'