collections.sort(list, comparator) 详解

Collections.sort(contentBOList, new Comparator())

{

 @Override
         public int compare(Object o1, Object o2) {
           try {
return (((Company) o1).getDept().getDeptID()).
compareTo(((Company) o2).getDept().getDeptID());
} catch (Exception e) {
return 0;

}            
         }

});

compare 的两个参数来自sort函数的list 参数,其中o1 为被比较的对象,假如要排序的list数据如下:
2101
2100
2092
2093
2094
2104
2105


则第一次第一调用compare 函数是o1=2100, o2=2101


下面是执行compare 函数并两两比较的步骤,大家能看出来是用了什么排序算法吗?

以下排序算法以后待研究补充。

o1 o2 compare return value
2100 2101 -1
2092 2100 -1
2093 2092 1
2093 2100 -1
2092 2093 -1
2094 2100 -1
2092 2100 -1
2093 2092 1
2094 2100 -1
2094 2093 1
2093 2092 1
2094 2093 1
2104 2094 1
2093 2100 -1
2104 2094 1
2104 2101 1
2093 2092 1
2104 2101 1
2105 2100 1
2094 2100 -1
2105 2100 1
2105 2104 1
2094 2094 1
2105 2104 1

其中-1表示o1

以上为升序排列,如想降序排列则可将o1,o2的位置互换下,如下:

(((Company) o2).getDept().getDeptID()).
compareTo(((Company) o1).getDept().getDeptID());

你可能感兴趣的:(java)