我有下面的代码。当我试图编译它时,它会给出以下错误:
线程“主”java.lang.Error中的异常:未解决的编译问题:类型数组中的方法排序(T[],比较器)不适用于>参数(int,新比较器(){}) 在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]);
}
}
}我如何解决这个问题?
发布于 2014-03-16 02:24:50
您可以使用
Integer[][] A = ...;而不是
int[][] A = ...;您可以在这篇文章中获得更多信息:Why can Java Collections not directly store Primitives types?。
发布于 2014-03-16 02:37:15
您不必调用Arrays.sort(Integer[], Comparator);,而是可以直接调用Arrays.sort(int[]);。
实际上,Integer已经实现了Comparable,因此您可能不会再次定义它,除非您想要定义一些不同的排序样式!
https://stackoverflow.com/questions/22432235
复制相似问题