在Java中以相反的顺序对列表进行排序

可以使用java.util.Collections.sort()方法以相反的顺序(即降序)对列表进行排序。此方法需要两个参数,即要排序的列表和使用Comparator反转元素集合顺序的Collections.reverseOrder()。

如果列表中存在相互不可比较的元素,则Collections.sort()方法将引发ClassCastException。

演示此过程的程序如下:

示例

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Demo {
   public static void main(String args[]) {
      List aList = new ArrayList();
      aList.add("James");
      aList.add("Harry");
      aList.add("Susan");
      aList.add("Emma");
      aList.add("Peter");
      System.out.println("The unsorted ArrayList is: " + aList);
      Collections.sort(aList, Collections.reverseOrder());
      System.out.println("The sorted ArrayList in reverse order is: " + aList);
   }
}

上面程序的输出如下:

The unsorted ArrayList is: [James, Harry, Susan, Emma, Peter]
The sorted ArrayList in reverse order is: [Susan, Peter, James, Harry, Emma]

现在让我们了解上面的程序。

创建ArrayList aList。然后,使用ArrayList.add()将元素添加到ArrayList中。打印未排序的ArrayList,然后使用Collections.sort()和Collections.reverseOrder()以相反的顺序对ArrayList元素进行排序。最后,打印排序后的ArrayList。演示此代码段如下:

List aList = new ArrayList();
aList.add("James");
aList.add("Harry");
aList.add("Susan");
aList.add("Emma");
aList.add("Peter");
System.out.println("The unsorted ArrayList is: " + aList);
Collections.sort(aList, Collections.reverseOrder());
System.out.println("The sorted ArrayList in reverse order is: " + aList);