1、对于基本类型的数组的排序是无法重写Comparator来进行排序的,如下所示, 泛型参数设置成int时报错:Type argument cannot be of primitive type
int[] b = {-1, 2, 3};
Arrays.sort(b, new Comparator<int>() { // 报错:Type argument cannot be of primitive type
@Override
public int compare(int o1, int o2) {
return 0;
}
});
2、Arrays.sort()可以对Integer数组排序, 例如:
对数组a按照绝对值大小降序 排序
Integer[] a = {-1, 2, 3};
Arrays.sort(a, (i, j) -> (Math.abs(j) - Math.abs(i))); //排序后,a为3, 2, -1
3、Arrays.sort()可以对int型二维数组排序,例如:
对数组c按照第二维降序 排序,
int[][] c = {{1,2}, {3,4}};
Arrays.sort(c, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o2[1] - o1[1];
}
}); // 排序后,c为 {{3, 4}, {1, 2}}