java - 使用第3列的2d数组排序

时间:2014-03-16 02:21:38

标签: java sorting multidimensional-array

我有以下代码。当我尝试编译它时,它给了我以下错误:

  

线程“main”中的异常java.lang.Error:未解决的编译问题:     类型数组中的方法sort(T [],Comparator)不适用于>参数(int [] [],new Comparator(){})

     

在test.main.main(main.java:12)


import java.io.*;
import java.util.Arrays;
import java.util.Comparator;

public class main {
        public static void main(String[] args) throws IOException {

        int [][] A = {{1,2,3}, {2,3,4}, {3,4,5}};

        Arrays.sort(A, new Comparator<Integer[]>() {
            public int compare(Integer[] int1, Integer[] int2) {
                Integer key1 = int1[2];
                Integer key2 = int2[2];
                return key1.compareTo(key2);
            }
        });


        for(int i=0; i<3; i++) {
            System.out.println(A[i][0] + ", " + A[i][1] + ", " + A[i][2]);
        }

    }
}

我该如何解决这个问题

2 个答案:

答案 0 :(得分:2)

您可以使用

解决此问题
Integer[][] A = ...;

而不是

int[][] A = ...;

您可以在这篇文章中获得更多信息:Why can Java Collections not directly store Primitives types?

答案 1 :(得分:0)

您无需致电Arrays.sort(Integer[], Comparator);而是可以直接致电Arrays.sort(int[]);

实际上Integer已经实现了Comparable,因此您可能无法再次定义它,除非您想要定义一些不同的排序样式!