自jdk1.8后,List接口增加了默认实现排序方法,代码如下:
default void sort(Comparator<? super E> c) {
//转换为数组
Object[] a = this.toArray();
//排序逻辑是通过Arrays静态类实现
Arrays.sort(a, (Comparator) c);
//实例化一个List迭代器,目的是修改原List元素
ListIterator<E> i = this.listIterator();
//排序后,通过增强for循环顺序修改List元素
for (Object e : a) {
i.next();
i.set((E) e);
}
}