我正在尝试使用以下代码在 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 将使您的代码运行