这是我的代码:
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 (实际和形式参数列表的长度不同))
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
相同。