按降序对 int 数组进行排序会给出“方法不适用于参数”

2024-01-05

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

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

但我收到这个错误:

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


如果你看一下数组的javadoc http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html,你会看到唯一的sort方法采用comparator作为第二个参数是:

sort(T[] a, Comparator<? super T> c)
sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)

就你而言,int[]不是一个T[] (Integer[]会是)所以你不能应用这些方法。

你有(至少)2个选择:

  • 按升序排序并且反转数组 https://stackoverflow.com/questions/9995432/reverse-array-order
  • 将数组转换为Integer[]并使用上面的方法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按降序对 int 数组进行排序会给出“方法不适用于参数” 的相关文章

随机推荐