Collections.sort和Arrays.sort的区别
Collections.sort专门给List排序,而Arrays.sort专门给数组进行排序。
Collections.sort排序底层调用的是Arrays.sort方法。部分源码
public class Collections {
public static <T> void sort(List<T> list, Comparator<? super T> c) {
list.sort(c);
}
}
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
@Override
@SuppressWarnings("unchecked")
public void sort(Comparator<? super E> c) {
final int expectedModCount = modCount;
Arrays.sort((E[]) elementData, 0, size, c);
if (modCount != expectedModCount) {
throw new ConcurrentModificationException();
}
modCount++;
}
}
Demo
if (StringUtils.isNotBlank(pageIn.getField()) && "happenTime".equals(pageIn.getField())) {
if ("desc".equals(pageIn.getOrder())) {
Collections.sort(synDataDTOList, (o1, o2) -> -o1.getHappenTime().compareTo(o2.getHappenTime()));
} else {
Collections.sort(synDataDTOList, Comparator.comparing(SynDataDTO::getHappenTime));
}
}