gpt4 book ai didi

java - 在java中对2d字符串数组进行排序 - 对数组中的索引元素进行排序

转载 作者:行者123 更新时间:2023-12-02 22:55:44 25 4
gpt4 key购买 nike

嗨,我需要在 java 中对数组进行二维排序,但我需要按数组内的索引进行排序我的数组是

  String arr[][]={  {"joun","1525565","10"},
{"ALI","15256562","100"},
{"FATEH","1525534","20"} };

我需要按索引号二对数组进行排序输出是

   String arr[][]={ {"ALI","15256562","100"},
{"FATEH","1525534","20"},
{"joun","1525565","10"} };

我的订单必须是 100 然后 20 然后 10

我试图将此代码放入java中,但问题是程序与索引1和2混淆了我在 for 循环内部使用了 Arrays.sort(arr[i])

最佳答案

在 Java 8 中,您可以编写此代码以按索引 2 排序对于递减的数字顺序

Arrays.sort(arr, Comparator.comparing(row -> -Long.parseLong(row[2])));

Arrays.sort(arr, Comparator.comparing((String[] row) -> Long.parseLong(row[2]))
.reversed());
<小时/>

作为字符串而不是数字的升序。

Arrays.sort(arr, Comparator.comparing(row -> row[2]));

这将命令 10, 100, 20但如果你先制作较长的字符串,然后再制作较短的字符串。

Arrays.sort(arr, Comparator.comparing((String[] row) -> row[2].length()).reversed()
.thenComparing(row->row[2]));

这将给出顺序为 100, 10, 20

顺便说一句:我不知道为什么第一个row需要给定的类型。

如果你想按数字排序,你可以这样做

Arrays.sort(arr, Comparator.comparing(row -> Long.parseLong(row[2])));

这将把10, 20, 100按升序排列。

在 Java 8 中,您可以添加匿名内部类来执行相同的操作。

关于java - 在java中对2d字符串数组进行排序 - 对数组中的索引元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29900661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com