可以使用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);