如何在java中对2d数组排序?

vojdkbi0  于 2021-07-06  发布在  Java
关注(0)|答案(3)|浏览(393)

这个问题在这里已经有答案了

java中字符串的二维数组排序(8个答案)
上个月关门了。
所以我有一个java中的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) ,但它只是抛出错误。我觉得事情会更复杂。
编辑:输出应该是
鲍勃·史密斯q 420无名氏b 999姓名t 123
我已经有打印它正常工作的代码,只需要按字母顺序的行排序。

ylamdve6

ylamdve61#

如果您只想对行进行排序,我认为可以这样做:

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
kmb7vmvb

kmb7vmvb2#

您可以使用流解决此问题:

String[] result = Arrays.stream(a)
        .map(inner -> String.join(" ", inner))
        .sorted()
        .toArray(String[]::new);
tsm1rwdh

tsm1rwdh3#

试试这个

Arrays.sort(a, (b, c) -> b[0] - c[0]);

相关问题