我正在尝试使用以下代码在 Java 中按降序对数组进行排序:
for(int i = 0; i < arr.length; i++) {
Comparator comparator = Collections.reverseOrder();
Arrays.sort(arr,comparator);
}
但我得到这个错误:
Arrays 类型中的方法 sort(int[]) 不适用于参数 (int[], Comparator)
如果您查看Arrays 的 javadoc,您会发现唯一sort
将 acomparator
作为第二个参数的方法是:
sort(T[] a, Comparator<? super T> c)
sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)
在你的情况下,int[]
is not a T[]
( Integer[]
would be) 所以你不能应用这些方法。
你有(至少)2个选项:
Integer[]
并使用上述方法目前尚不清楚您为什么要尝试循环,但是在原始Arrays.sort
数组上运行的方法不允许指定自定义比较器。
最简单的方法是对数组进行排序然后反转。我无法立即找到一种reverse
方法,int[]
但很容易编写自己的方法。
Arrays 类中唯一接受比较器的排序方法要求您提供对象数组。类中没有带有 sort(int[], Comparator) 签名的方法
Arrays.sort(arr,comparator);
不适用于原语。arr
必须是对象数组。
在定义数组时更改 int Integer。更改int arr[]={};
为Integer arr[]={};
This 将使您的代码运行