[英]java - 2d array sorting using 3rd column
我有以下代码。 当我尝试编译它时,它给我以下错误:
线程“main”中的异常java.lang.Error:未解决的编译问题:Arrays类型中的方法sort(T [],Comparator)不适用于> arguments(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]);
}
}
}
我怎么解决这个问题
您可以使用解决此问题
Integer[][] A = ...;
代替
int[][] A = ...;
您可以在这篇文章中获得更多信息: 为什么Java Collections不能直接存储Primitives类型? 。
你不需要调用Arrays.sort(Integer[], Comparator);
相反,你可以直接调用Arrays.sort(int[]);
。
实际上Integer已经实现了Comparable
,因此您可能无法再次定义它,除非您想要定义一些不同的排序样式!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.