问题

是否有任何简单的方法按降序对数组进行排序,就像它们在Arrays class中按升序排序一样?

或者我必须停止懒惰并自己这样做:[


#1 热门回答(259 赞)

你可以使用它来排序所有类型的对象

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

Arrays.sort(a, Collections.reverseOrder());

Arrays.sort()不能直接用于按降序对基本数组进行排序。如果你试图通过传递由4333755808定义的反向比较器调用Arrays.sort()方法,它将抛出错误

找不到合适的排序方法(int [],比较器)

这将适用于Integer数组,但不适用于int数组。

按降序对基本数组进行排序的唯一方法是,首先按升序对数组进行排序,然后将数组反转到位。对于二维原始数组也是如此。


#2 热门回答(85 赞)

你可以用这个:
9444712​​36
Collections.reverseOrder()使用逆自然顺序返回aComparator。你可以使用Collections.reverseOrder(myComparator)获得自己的比较器的反转版本。


#3 热门回答(76 赞)

列表

Collections.sort(list ,Collections.reverseOrder());

对于一个数组

Arrays.sort(array, Collections.reverseOrder());

原文链接