我正在以相反的顺序对我的数组进行排序,但集合似乎有问题[重复]

问题描述 投票:0回答:1

这是我的代码:

public void p10(int a, int b, int c){
    int[] nums = new int[] {a, b, c};
    Arrays.sort(nums, Collections.reverseOrder());
    System.out.println(Arrays.toString(nums));
}

它不起作用并且报错可能是什么问题?错误指出:

java: 找不到合适的排序方法(int[],java.util.Comparator) 方法 java.util.Arrays.sort(T[],java.util.Comparator) 不适用 (推理变量 T 具有不兼容的边界 平等约束:int 上限:java.lang.Object) 方法 java.util.Arrays.sort(T[],int,int,java.util.Comparator) 不适用 (无法推断类型变量 T (实际和形式参数列表的长度不同))

java arrays sorting collections bubble-sort
1个回答
0
投票

int[] 是一个原始数组,不适用于比较器,因此您需要在进行排序之前将其转换为

Integer
s 的数组:

public void p10(int a, int b, int c){
    Integer[] nums = new Integer[] {a, b, c};
    Arrays.sort(nums, Collections.reverseOrder());
    System.out.println(Arrays.toString(nums));
}

Integer
只是
int
的包装对象,Java 编译器可以将其与其他数学运算无缝内联。使用
Integer
在功能上(几乎)与使用原始
int
相同。

© www.soinside.com 2019 - 2024. All rights reserved.