如何在Java中按降序sortingArrayList <Long>?
如何在Java中按降序排列ArrayList?
以下是您的list的一种方法: 
 Collections.sort(list); Collections.reverse(list); 
 或者你可以实现自己的Comparator来sorting并消除相反的步骤: 
 Collections.sort(list, new Comparator<Long>() { public int compare(Long o1, Long o2) { return o2.compareTo(o1); } }); 
 甚至更简单地使用Collections.reverseOrder()因为你只是倒过来: 
 Collections.sort(list, Collections.reverseOrder()); 
 Comparator<Long> comparator = Collections.reverseOrder(); Collections.sort(arrayList, comparator); 
您可以使用下面给出的以下代码;
 Collections.sort(list, Collections.reverseOrder()); 
或者如果你打算使用自定义比较器,你可以使用下面给出的
 Collections.sort(list, Collections.reverseOrder(new CustomComparator()); 
其中CustomComparator是一个比较类,用于比较列表中存在的对象。
 正常sorting并使用Collections.reverse(); 
Java 8
在java 8中做这件事情是非常有趣和容易的
 Collections.sort(variants,(a,b)->a.compareTo(b)); Collections.reverse(variants); 
Lambdaexpression式在这里摇滚!
如果你需要多于一行的逻辑来比较a和b,你可以这样写
 Collections.sort(variants,(a,b)->{ int result = a.compareTo(b); return result; }); 
sorting,然后颠倒。
一个更一般的方法来实现我们自己的比较器,如下所示
 Collections.sort(lst,new Comparator<Long>(){ public int compare(Long o1, Long o2) { return o2.compareTo(o1); } }); 
以下方法将按降序对列表进行sorting,并处理“ 空 ”值,如果您有任何空值,则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()和提供降序的比较器。 请参阅Javadoc的Collections.sort 。 
 您也可以使用TreeSet而不是comparator对ArrayList进行sorting。 下面是一个我之前有一个整数数组问题的例子。 我使用“数字”作为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()+" "); } }