学习笔记:
两种排序算法的原理上有差别,对于给定的数据集,如果大部分是排好序甚至本身就是有序的,使用冒泡排序算法还更快。
那么,collections.sort()采用的是什么算法呢?是merged sort(归并排序),归并排序中无论数据集是否大致有序,都是需要进行大量的归并操作的,这其中包括元素的比较和移动。虽然归并排序具有O(nlogn)的效率,好于冒泡的O(n²),但是对于比较极端的情况,我们需要另外单独考虑,这一切也当然是建立在对于两种算法实现原理上的熟悉上,而不是仅仅记得他们的时间复杂度。
List<BaClass> dataList=mapper.get();
Collections.sort(dateList,new Comparater<BaClass>(){
public int compare(BaClass b1,BaClass b2){
return b1.getAreID.CompareTo(b2.getAreId);
}
);