array.sort如何使用多维数组?

时间:2015-08-06 18:01:24

标签: java arrays multidimensional-array

我一直在互联网上环顾四周试图找出如何按列对多维数组进行排序,我发现了一种有效的方法,但我不确定它是如何工作的。有人可以向我解释一下吗?

Arrays.sort(data, (int[] num1, int[] num2) ->
    Integer number1 = num1[1];
    Integer number2 = num2[1];
    return number2.compareTo(number1);
});

在这种情况下,代码按第二列的降序对数组[] []进行排序。

1 个答案:

答案 0 :(得分:3)

二维数组是一个数组,其元素是数组(在您的情况下为int [])。因此,为了对这样的数组进行排序,您应该提供一个比较int[]个对象的比较器。这正是代码片段中lambda表达式的作用。它接受两个int []对象,并通过比较两个数组的第二个位置(即索引1)的元素来确定它们的相对顺序。

lambda表达式是Java 8中添加的一个特性。它允许您为功能接口提供实现(这是一个具有单个方法的接口,例如Comparator<int[]>,其单个方法为{{1没有匿名类实例所需的大部分语法。