在Java中,如何对2D数组的行升序和列降序进行排序?

在Java中,如何对2D数组的行升序和列降序进行排序?,java,Java,我想在Java中对2D数组进行行和列排序。有没有一种类似于下面的python代码的方法可以做到这一点。我将数组作为数字[][2] python代码 # it first sorts based on index 0; if they match, it reverse sort based on index 1 numbers.sort(key: lambda x:(x[0], -x[1])) 我们可以通过Arrays.sort()在Java中实现同样的功能吗?如果可以,我需要传递的比较器是

我想在Java中对2D数组进行行和列排序。有没有一种类似于下面的python代码的方法可以做到这一点。我将数组作为数字[][2]

python代码

# it first sorts based on index 0; if they match, it reverse sort based on index 1
numbers.sort(key: lambda x:(x[0], -x[1])) 

我们可以通过Arrays.sort()在Java中实现同样的功能吗?如果可以,我需要传递的比较器是什么?

您可以使用以下代码:

Arrays.sort(
    numbers, 
    Comparator.comparing((int[] x) -> x[0])
              .thenComparing(
                  (int[] x) -> x[1], 
                  Comparator.<Integer>naturalOrder().reversed()));
Arrays.sort(
    numbers, 
    (a, b) -> a[0] < b[0] ? -1 : a[0] > b[0] ?  1 :
              a[1] < b[1] ?  1 : a[1] > b[1] ? -1 : 0);