private class ComparatorList implements Comparator {
public int compare(Object arg0, Object arg1) {
ErpAccountCheckDetail cd1 = (ErpAccountCheckDetail)arg0;
ErpAccountCheckDetail cd2 = (ErpAccountCheckDetail)arg1;
return cd1.getCheckDate().compareTo(cd2.getCheckDate());
}
}
return cd1.getCheckDate().compareTo(cd2.getCheckDate());返回值是怎么确定升序降序的,返回值不是有可能为1,-1,0吗,是怎么确定升序或是降序的
cd1.getCheckDate().compareTo(cd2.getCheckDate())返回值不是一会1,一会-1吗,到底什么时候升序什么时候降序呢
追答怎么会?你用System.out.println(cd1.getCheckDate().compareTo(cd2.getCheckDate()))打印出结果看的吗?
追问结果每次不一样
追答cd1.getCheckDate()
返回什么类型的值?Date还是String?
先举个例子
1 2 5 3 6 9 7
从大家的认知来看,上面的数字从小到大为
1 2 3 5 6 7 9
但是如果是一对的字符串或者对象呢?
那么就需要Comparator来自定义字符串或对象的比较方法,来排序了。
如
aa bb cc cc ab
如果你在Comparator中自定义c是大于b b是大于a的 那么
降序排序就是
aa ab bb cc cc
对于 public int compare(Object arg0, Object arg1)的理解
如果放回1 说明arg0 > arg1 如 2 1
如果放回0 说明arg0 = arg1 如 cc cc
如果放回-1 说明arg0 < arg1 如 6 7
所以如果你希望
1 2 5 3 6 9 7 的排序变成 离5最接近的先输出那么如下代码(降序)
public int compare(Object arg0, Object arg1) {