回答
您可以使用此
sort(T[] a, Comparator<? super T> c)
Arrays.sort(a, Collections.reverseOrder());
为列表
Collections.sort(list ,Collections.reverseOrder());
用于阵列
Arrays.sort(array, Collections.reverseOrder());
int [] array = {2,4,3,6,8,7}; Arrays.sort(array,Collections.reverseOrder());给我一个错误! 错误的是:“类型数组中的方法sort(int [])不适用于参数(int [],比较器
int不是对象。尝试使用Integer []代替。 – Ornithopter
为什么Integer []工作而不是int []? – OpMt
我不知道你的用例是什么,但除了o这里的答案另一个(懒惰)选项仍然按照您指示的升序排序,但是然后在反向顺序中进行迭代。
另一种可能是(对数字!)
- -1
- 排序
- 乘再次与-1
字面上讲乘以阵列:
array = -Arrays.sort(-array)
'{__________ lol ________}' –
这种方法实际上是创造性的,如果我们排序数字,即使它不是通用的,并且可能导致溢出问题... – hackjutsu
这对于原始类型。你是天才。 –
没有明确的比较R:
Collections.sort(list, Collections.reverseOrder());
具有明确比较:
Collections.sort(list, Collections.reverseOrder(new Comparator()));
的Java 8:
Arrays.sort(list, comparator.reversed());
更新: reversed()
逆转指定比较。通常,比较器按升序排列,所以这会改变顺序以降序。
首先,您需要使用排序的数组:
Collections.sort(Myarray);
然后,你需要从上升到下降的使用顺序颠倒:
Collections.reverse(Myarray);
另一个的解决方案是,如果你是利用可比较的接口,您可以切换您在compareTo(Object bCompared)中指定的输出值。
例如:
public int compareTo(freq arg0)
{
int ret=0;
if(this.magnitude>arg0.magnitude)
ret= 1;
else if (this.magnitude==arg0.magnitude)
ret= 0;
else if (this.magnitude<arg0.magnitude)
ret= -1;
return ret;
}
凡幅度是数据类型在我的计划双的属性。这是我的定义类频率以相反的顺序,它的大小。所以为了解决这个问题,你需要切换<
和>
返回的值。这给你以下几点:
public int compareTo(freq arg0)
{
int ret=0;
if(this.magnitude>arg0.magnitude)
ret= -1;
else if (this.magnitude==arg0.magnitude)
ret= 0;
else if (this.magnitude<arg0.magnitude)
ret= 1;
return ret;
}
要使用该的compareTo的,我们只需调用Arrays.sort(mFreq)
,这将给你数组排序freq [] mFreq
。
这个解决方案的美观(在我看来)是它可以用来对用户定义的类进行排序,甚至比用特定属性对它们进行排序更多。如果一个Comparable接口的实现对你来说听起来令人生畏,我鼓励你不要这样想,实际上并不是这样。这link on how to implement comparable使我更容易。希望人们能够利用这个解决方案,并且你的喜悦甚至会被挖掘出来。
array.sort(function(a, b) {return b - a;}); //descending
或
array.sort(function(a, b) {return a - b;}); //ascending
我知道,这是一个相当古老的线程,但这里是整型的更新版本和Java 8:
Arrays.sort(array, (o1, o2) -> o2 - o1);
请注意,这是“01 - o2“为正常升序(或Comparator.comparingInt())。
这也适用于任何其他类型的对象。说:
Arrays.sort(array, (o1, o2) -> o2.getValue() - o1.getValue());
- 1. Array Sorting降序排列
- 2. JAVA:按降序排列数组
- 3. F#Seq.sortBy按降序排列
- 4. Cout按降序排列C++
- 5. 排序邮件按降序排列
- 6. 排序原始表按降序排列
- 7. 排序按降序排列PHP
- 8. 按升序/降序排列vba excel
- 9. 按变量排序数组然后按降序排列
- 10. Java:按降序排序未排序的数组
- 11. 部分按降序排序
- 12. 如何按降序排序
- 13. Datatables按降序排序
- 14. Python list按降序排序
- 15. id以降序排列S.N,按升序排列
- 16. 红宝石 - 按降序排列
- 17. 按值降序排列关联数组
- 18. Python中按堆栈降序排列
- 19. 如何按降序排列评论?
- 20. 在knockoutjs中按降序排列总分
- 21. MapReduce按价值降序排列
- 22. Django按降序排列故障
- 23. SQL - 按降序排列yyyy/mm/dd hh:mm:ss.ssss
- 24. 按降序排列相应的值
- 25. Array未按时间排序
- 26. order_insertion_by降序排列?
- 27. perl - 按数字顺序降序排列,然后按字母顺序排列
- 28. 如何双向排序python列表,按降序排列数字,按升序排列字母排序?
- 29. WORD VBA按升序排序和降序排列
- 30. 数组排序按降序而不是升序排列
它无法对基元数组排序 –
将您的基元转换为它们各自的对象。 Integer为int,double为double,布尔型为布尔值等。 – Ishmael
如果您仍想使用自定义[comparator](http://docs.oracle.com/javase/7/docs/api/java/util/Comparator .html):'Collections.reverseOrder(this)' –