我正在为我的项目编写一些Java代码,但遇到了这个我不知道如何处理的问题。 我有一个像这样的二维数组:
Object[][] array = new Object[10][3];
具有内部类型:[String, String, Double]
示例:
[[apple, car, 10.7], [melon, train, 3.4], [peach, plane, 5.2]]
我需要按升序对它进行最后排序,而不创建自己的排序函数。
所需结果:
[[melon, train, 3.4], [peach, plane, 5.2], [apple, car, 10.7]]
有人可以帮我吗?
PS(我尝试了帖子中标记为“此问题之前已经回答过”的所有解决方案,但没有一个对我有用。但是,这里的第一个答复解决了我的问题。谢谢!)< / p>
答案 0 :(得分:0)
尝试一下:
Object[][] array = new Object[10][3];
// fill the array
Object[][] sortedArray = Arrays.stream(array)
.filter(v -> v[2] != null) //not required if you have the array completely filled
.sorted(Comparator.comparingDouble(v -> (double) v[2]))
.toArray(Object[][]::new);
System.out.println(Arrays.deepToString(sortedArray));