【问题标题】:How to sort array of type Object[][] by a specific column [duplicate]如何按特定列对Object [] []类型的数组进行排序[重复]
【发布时间】:2019-07-12 12:26:55
【问题描述】:

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

【问题讨论】:

  • Arrays.sort(array, Comparator.comparingDouble(a -> (double) a[2]));

标签: java arrays sorting object


【解决方案1】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2016-08-04
    • 1970-01-01
    • 2018-05-26
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多