Java的Arrays.sort()仅支持对引用数据类型进行自定义排序,如果是基本数据类型(如int类型),将无法使用Comparator进行自定义排序。可以使用下面的方法来实现
- 手动实现排序算法。
- 先排序再reverse
int[] nums = new int[]{1,6,4,55,61,3,5,8,4,2,8,15,61,33};
Arrays.sort(nums);
for (int i = 0; i < nums.length/2; i++) {
int temp = nums[i];
nums[i] = nums[nums.length - 1 - i];
nums[nums.length - 1 - i] = temp;
}
System.out.println(Arrays.toString(nums));
- 转换成Integer[]
int[] nums = new int[]{1,6,4,55,61,3,5,8,4,2,8,15,61,33};
Integer[] temp = new Integer[nums.length];
for (int i = 0; i < temp.length; i++) {
temp[i] = nums[i];
}
Arrays.sort(temp,(i,j)->(j-i));
for (int i = 0; i < nums.length; i++) {
nums[i] = temp[i];
}
System.out.println(Arrays.toString(nums));