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<o2 ,则把o1排前面(左边),1则反之。
以上为升序排列,如想降序排列则可将o1,o2的位置互换下,如下:
(((Company) o2).getDept().getDeptID()).
compareTo(((Company) o1).getDept().getDeptID());