使用匿名内部类重写Comparator中的compara方法报错:
// array定义成 Integer 包装类数组
Integer[] array;
你的array好像是基础类型 int[]的,这种类型的没有必要去重写,本来就存在 Arrays.sort(int[] a)这个方法的
该回答引用GPTᴼᴾᴱᴺᴬᴵ
这个错误通常是因为泛型类型参数没有正确指定引起的。在使用Comparator时,应该指定其类型参数,以便在比较时正确比较元素的类型。
以下是一个使用匿名内部类重写Comparator中的compare方法的示例代码:
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
int[][] arr = {{2, 4}, {3, 1}, {1, 5}, {4, 3}};
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0] - o2[0];
}
});
System.out.println(Arrays.deepToString(arr));
}
}
需要注意的是,如果使用了泛型类型参数,要确保所有使用到该类型参数的地方都正确指定了泛型类型参数。如果仍然报错,可能是其他代码中存在问题,需要进一步排查。