java按降序对整型数组进行排序给出了“方法不适用于参数”
我尝试使用以下代码在Java中按降序对数组进行排序:
for(int i = 0; i < arr.length; i++) {
Comparator comparator = Collections.reverseOrder();
Arrays.sort(arr,comparator);
}
但我得到了这个错误:
The method sort(int[]) in the type Arrays is not applicable for the arguments (int[], Comparator)
# 1 楼答案
如果查看javadoc of Arrays,您将看到唯一将
sort
作为第二个参数的comparator
方法是:在您的情况下,
int[]
不是T[]
(Integer[]
将是),因此您无法应用这些方法您有(至少)2个选项:
Integer[]
并使用上述方法# 2 楼答案
不清楚为什么要尝试循环,但是在基元数组上操作的
Arrays.sort
方法不允许指定自定义比较器最简单的方法是排序,然后反转数组。我不能马上找到一个
reverse
方法,它需要一个int[]
但是它很容易编写自己的方法# 3 楼答案
在Arrays类中接受比较器的唯一排序方法要求您提供一个对象数组。类中没有签名为sort(int[],Comparator)的方法
# 4 楼答案
Arrays.sort(arr,comparator);
在原语上不起作用。arr
必须是对象数组# 5 楼答案
定义数组时更改int整数。 将
int arr[]={};
更改为Integer arr[]={};
这将使您的代码能够运行