Java에서 2D 배열을 어떻게 정렬합니까? [복제]
Nov 19 2020
그래서 Java에서 String 인 2D 배열이 있습니다.
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";
행을 알파벳순으로 정렬하려면 어떻게해야합니까?
시도 Arrays.sort(a)
했지만 오류가 발생했습니다. 그리고 더 복잡해질 것 같아요.
편집 : 출력은
Bob Smith Q 420 John Doe B 999 여기에 이름 지정 T 123
제대로 작동하는 인쇄 코드가 이미 있습니다. 행별로 알파벳순으로 정렬하면됩니다.
답변
3 RohanKumar Nov 19 2020 at 07:38
행만 정렬하려면 다음과 같이 할 수 있다고 생각합니다.
Arrays.sort(a, (o1, o2) -> {
String firstO1Element = o1[0];
String firstO2Element = o2[0];
return firstO1Element.compareTo(firstO2Element);
});
그러면 다음과 같은 출력이 제공됩니다.
Bob Smith Q 420
John Doe B 999
Name Here T 123
Laugslander Nov 19 2020 at 07:33
스트림으로이 문제를 해결할 수 있습니다.
String[] result = Arrays.stream(a)
.map(inner -> String.join(" ", inner))
.sorted()
.toArray(String[]::new);
LuthermillaMuculadosReis Nov 19 2020 at 07:45
이 시도
Arrays.sort(a, (b, c) -> b[0] - c[0]);