去重:
//根据AlarmEntity.class的一个属性sourceProblem去重,并保留最新
//alarms是按照时间顺序存储的
private static List<AlarmEntity> removeDuplicateAlarms(List<AlarmEntity> alarms) {
Set<AlarmEntity> set = new TreeSet<AlarmEntity>(new Comparator<AlarmEntity>() {
@Override
public int compare(AlarmEntity o1, AlarmEntity o2) {
return o1.getSourceProblem().compareTo(o2.getSourceProblem());
}
});
//为了保留最新,所以list需要使用reverse从后往前读取
Collections.reverse(alarms);
set.addAll(alarms);
return new ArrayList<AlarmEntity>(set);
}
排序(排序没写完,待续):
/**
* int compare(AlarmEntity o1, AlarmEntity o2) 返回一个基本类型的整型,
* 返回负数表示:o1 小于o2,
* 返回0表示:o1和o2相等,
* 返回正数表示:o1大于o2。
*/
public List<AlarmEntity> sort(List<AlarmEntity> alarms) {
Collections.sort(alarms, new Comparator<AlarmEntity>() {
@Override
public int compare(AlarmEntity o1, AlarmEntity o2) {
// 按照时间进行升序排列 ;<是降序
if (o1.getLastSourceEventTime().getTime() > o2.getLastSourceEventTime().getTime()) {
return 1;
}
if (o1.getLastSourceEventTime().getTime() == o2.getLastSourceEventTime().getTime()) {
return 0;
}
return -1;
//return o1.getAge()-o2.getAge();//升序
//return o2.getAge()-o1.getAge();//降序
//return o1.getName().compareTo(o2.getName()) ;// 按照姓名升序
//return o2.getName().compareTo(o1.getName()) ;// 按照姓名降序
}
});
return alarms;
}