按降序对int数组进行排序是"方法不适用于参数"

xyv*_*yre 1 java arrays

我正在尝试使用以下代码在Java中按降序对数组进行排序:

for(int i = 0; i < arr.length; i++) {
   Comparator comparator = Collections.reverseOrder();
   Arrays.sort(arr,comparator);
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

Arrays类型中的方法sort(int [])不适用于参数(int [],Comparator)

ass*_*ias 6

如果你看一下数组javadoc,你会发现sortcomparator第二个参数作为第二个参数的唯一方法是:

sort(T[] a, Comparator<? super T> c)
sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)
Run Code Online (Sandbox Code Playgroud)

在你的情况下,int[]不是T[](Integer[]将)所以你不能应用这些方法.

你有(至少)2个选择:

  • 按升序排序并反转数组
  • 将数组转换为a Integer[]并使用上面的方法