排序2D int数组JAVA

时间:2017-02-11 21:53:01

标签: java arrays sorting multidimensional-array

您好我有问题,

[在java中]

我有一个二维数组 它的数组有7个int in line和更多行..

int[][] new arr=new[7][100];

排队的数字排名。

我需要排名数组。

例如

9 4 15 22 32 47 50
1 5 9 12 19 25 36
22 23 25 29 36 55 99
1 5 11 12 19 25 36
排序后

1 5 9 12 19 25 36
1 5 11 12 19 25 36
9 4 15 22 32 47 50
22 23 25 29 36 55 99

请你有一些想法?如何解决问题谢谢

2 个答案:

答案 0 :(得分:1)

解决此问题的简单方法是将2D数组转换为1D数组的列表。

List<int[]> list = new ArrayList<int[]>();
// add logic to transform your 2D array here

然后您可以将Collections.sort()与自定义Comparator函数一起使用。

Collections.sort(list, new Comparator<int[]>() {
    public int compare(int []a,int []b) {
        for(int i=0;i<6;i++)
            if(a[i]!=b[i]) return a[i]-b[i];
        return a[6] - b[6];
    }
});

答案 1 :(得分:0)

我会做这样的事情,或类似的东西:

我在Stack Overflow中看到类似的东西:https://stackoverflow.com/a/15452462/8024829

 double[][] array= {
   {1, 5},
   {13, 1.55},
   {12, 100.6},
   {12.1, .85} };

   java.util.Arrays.sort(array, new java.util.Comparator<double[]>() {
       public int compare(double[] a, double[] b) {
           return Double.compare(a[0], b[0]);
       }
   });