我有以下代码。当我尝试编译它时,它给了我以下错误:
线程“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]);
}
}
}
我该如何解决这个问题
答案 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
,因此您可能无法再次定义它,除非您想要定义一些不同的排序样式!