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