回答
您可以使用此
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. Cout按降序排列C++
- 4. 按R降序排列
- 5. F#Seq.sortBy按降序排列
- 6. 按降序排列數組?
- 7. 排序按降序排列PHP
- 8. 排序郵件按降序排列
- 9. 排序原始表按降序排列
- 10. JAVA按JSONObject(String,Int)降序排序
- 11. mysql按RAND()按降序排列
- 12. 按升序/降序排列vba excel
- 13. C - Qsort:按升序排序並按年降序排列
- 14. 按時間戳排序mongodb文檔(按降序排列)
- 15. 按變量排序數組然後按降序排列
- 16. Java:按降序排序未排序的數組
- 17. 如何按降序排序
- 18. 部分按降序排序
- 19. 基數按降序排序
- 20. Datatables按降序排序
- 21. Python list按降序排序
- 22. Matlab:按降序排序行
- 23. id以降序排列S.N,按升序排列
- 24. 按降序排列不工作?
- 25. SQL - 按降序排列yyyy/mm/dd hh:mm:ss.ssss
- 26. Python中按堆棧降序排列
- 27. Spark DataFrame組按照降序排列(pyspark)
- 28. MapReduce按價值降序排列
- 29. 按降序排列相應的值
- 30. 紅寶石 - 按降序排列
它無法對基元數組排序 –
將您的基元轉換爲它們各自的對象。 Integer爲int,double爲double,布爾型爲布爾值等。 – Ishmael
如果您仍想使用自定義[comparator](http://docs.oracle.com/javase/7/docs/api/java/util/Comparator .html):'Collections.reverseOrder(this)' –