List<Map.Entry<String, Date>> list = new LinkedList(idMapCreateTime.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Date>>() {
@Override
public int compare(Map.Entry<String, Date> o1, Map.Entry<String, Date> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
/**
* 排序规则:先按状态分类排序:成功、失败、取消、其它 然后每个分类可以再按时间排序
* 成功:状态时间顺序
* 失败:状态时间到序
* 取消:状态时间到序
* 其它:状态时间到序
*/
Collections.sort(entityList, new Comparator<ObjectEntity>() {
@Override
public int compare(ObjectEntity o1, ObjectEntity o2) {
if (o1.getStatus() != o2.getStatus()) {
if (o1.getStatus() == StatusEnum.SUCCESS) {
return -1;
} else if (o2.getStatus() == StatusEnum.SUCCESS) {
return 1;
} else if (o1.getStatus() == StatusEnum.FAILURE) {
return -1;
} else if (o2.getStatus() == StatusEnum.FAILURE) {
return 1;
} else if (o1.getStatus() == StatusEnum.CANCEL) {
return -1;
} else if (o2.getStatus() == StatusEnum.CANCEL) {
return 1;
}
}
if (o1.getStatus() == StatusEnum.SUCCESS) {
return o1.getStatusTime().compareTo(o2.getStatusTime());
} else {
return -o1.getStatusTime().compareTo(o2.getStatusTime());
}
}
});