如何按Java降序排列Java中的ArrayList?如何按Java降序排序ArrayList <Long>?
回答
下面是一個方法你list
:
Collections.sort(list);
Collections.reverse(list);
或者你也可以實現自己的Comparator
進行排序並消除反向步:
Collections.sort(list, new Comparator<Long>() {
public int compare(Long o1, Long o2) {
return o2.compareTo(o1);
}
});
或者甚至更簡單地使用Collections.reverseOrder()
,因爲您只能倒轉:
Collections.sort(list, Collections.reverseOrder());
排序,然後反轉。
排序正常,使用Collections.reverse();
通過使用Collections.sort()
與提供降序的比較器。 請參閱Javadoc的Collections.sort。
Comparator<Long> comparator = Collections.reverseOrder();
Collections.sort(arrayList, comparator);
僅在該變量聲明中使用泛型參數。 – 2011-05-05 09:35:20
來實現我們自己的比較如下
Collections.sort(lst,new Comparator<Long>(){
public int compare(Long o1, Long o2) {
return o2.compareTo(o1);
}
});
下面的方法將降序排列的列表,也較普遍的辦法處理「空」值,以防萬一,如果您有任何空值,那麼Collections.sort()將引發NullPointerException異常
Collections.sort(list, new Comparator<Long>() {
public int compare(Long o1, Long o2) {
return o1==null?Integer.MAX_VALUE:o2==null?Integer.MIN_VALUE:o2.compareTo(o1);
}
});
您可以使用下面給出的代碼;
Collections.sort(list, Collections.reverseOrder());
,或者如果你打算使用自定義的比較,因爲它是低於
Collections.sort(list, Collections.reverseOrder(new CustomComparator());
凡CustomComparator是一個比較類,這是目前在列表中的對象進行比較給你可以使用。
的Java 8
以及這樣做在Java 8是這麼多的樂趣,更容易
Collections.sort(variants,(a,b)->a.compareTo(b));
Collections.reverse(variants);
Lambda表達式搖滾這裏!
的情況下,你需要多行的邏輯比較一個和b你可以寫這樣的
Collections.sort(variants,(a,b)->{
int result = a.compareTo(b);
return result;
});
您也可以排序與TreeSet
而不是comparator
的ArrayList
。以下是我之前針對整數數組的問題的一個示例。我使用「數字」作爲ArrayList
的佔位符名稱。
import.java.util.*;
class MyClass{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
ArrayList<Integer> numbers = new ArrayList<Integer>();
TreeSet<Integer> ts = new TreeSet<Integer>(numbers);
numbers = new ArrayList<Integer>(ts);
System.out.println("\nThe numbers in ascending order are:");
for(int i=0; i<numbers.size(); i++)
System.out.print(numbers.get(i).intValue()+" ");
System.out.println("\nThe numbers in descending order are:");
for(int i=numbers.size()-1; i>=0; i--)
System.out.print(numbers.get(i).intValue()+" ");
}
}
但是'TreeSet'不存儲重複值。 – 2016-10-03 17:19:39
- 1. 如何按Java降序排序ArrayList <String>?
- 2. 如何排序ArrayList降序
- 3. Java如何ArrayList <String>排序/按索引排序?
- 4. 2類,按ArrayList降序排序
- 5. 如何按降序排序
- 6. 如何排序ArrayList <Object>按升序排序android
- 7. Java排序ArrayList <Integer>
- 8. Java Array按降序排列?
- 9. JAVA按JSONObject(String,Int)降序排序
- 10. 如何按降序對x軸排序
- 11. ArrayList <File>按file.length排序()
- 12. 部分按降序排序
- 13. 基數按降序排序
- 14. Datatables按降序排序
- 15. Python list按降序排序
- 16. Matlab:按降序排序行
- 17. Java:按降序排序未排序的數組
- 18. JAVA:在多列上對ArrayList <ArrayList <Integer>>排序
- 19. 排序ArrayList - IndexOutOfBoundsException -Java
- 20. 如何排序ArrayList <ArrayList <String>>?
- 21. JAVA:按降序排列數組
- 22. 排序按降序排列PHP
- 23. 排序郵件按降序排列
- 24. 排序原始表按降序排列
- 25. ArrayList的排序<Track>
- 26. 如何按降序排列數組?
- 27. 如何按降序排列評論?
- 28. 如何實現(按降序排列)
- 29. 如何排序ArrayList?
- 30. Java string arrayList:按降序排列元素(如數學中的多項式)
'L1> L2? -1:l1 == l2? 0:1'這段代碼很荒謬。然後使用'o1.compareTo(o2)'。 – ilalex 2011-05-05 08:54:54
@ilya:哦是的,好點,雖然它需要在這裏'o2.compareTo(o1)':) – WhiteFang34 2011-05-05 08:57:58
這似乎是工作和一個更簡單的解決方案。 – Jango 2015-08-08 08:11:23