如何按特定列[重复]对Object [] []类型的数组进行排序

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在为我的项目编写一些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(我尝试了帖子中标记为“此问题之前已经回答过”的所有解决方案,但这些都没有对我有用。但是,这里的第一个回复解决了我的问题。谢谢!)

java arrays sorting object
1个回答
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));
© www.soinside.com 2019 - 2024. All rights reserved.