// list是数据库中查出来的数据,现在要根据一些条件进行排序
list.sort(new Comparator<Vo>() {
@Override
public int compare(Vo o1, Vo o2) {
// 排序逻辑 ...
long l = 两个时间差;
if (Math.abs(l) > 30 * 60 * 1000 && l < 0) {
//数字1
return 1;
}
}
}
查了很多关于compare的文章,都只说需要更换位置返回1,不做调整返回-1,
但根据上面将数据进行排序后结果并不是我想要的结果
时间最早的数据并没有派到最前面
在将代码改为下面后结果符合了
// list是数据库中查出来的数据,现在要根据一些条件进行排序
list.sort(new Comparator<Vo>() {
@Override
public int compare(Vo o1, Vo o2) {
// 排序逻辑 ...
long l = 两个时间差;
if (Math.abs(l) > 30 * 60 * 1000) {
// 两个时间差
return l;
}
}
}
起初我以为 list.compare(obj o1, obj o2)方法的返回值会影响排序的结果,但是用纯数字list进行排序后发现并不受返回结果值影响,困惑了