1.
/**
* 检查id是否重复,并把重复的id拿出来
* @param list
* @return
*/
@Override
public List<String> checkDTOId(List<WorkStatDTO> list) {
List<String > str = new ArrayList<>();
List<String> workErrorId = new ArrayList<>();
//把所有id放入String集合中
for(WorkStatDTO strList : list){
str.add(strList.getWorkStatId());
}
//用map方式来实现获得重复id
Map<String,Integer> map = new HashMap<>();
for(String strs :str){
Integer i = 1;
if(map.get(strs) != null){
i = map.get(strs)+1;
}
map.put(strs,i);
log.info("strs:"+strs+","+"i;"+i);
}
//再把重复数据拿出来
for(String s:map.keySet()){
if(map.get(s)>1){
workErrorId.add(s);
log.info("s:"+s);
}
}
return workErrorId;
}
2.去除重复数据
List<String> str = workTimeService.checkDTO(workStatDTOS);
List<String > strList = new ArrayList<>();
//把返回有问题中重复的id,就只为一个
for(String string:str){
if(!strList.contains(string)){
strList.add(string);
}
}
/**
* 根据时间排序(根据其他字段可比较大小的来排序也一样)
* @param list
*/
private void listSort(List<Date> list) {
//用Collections这个工具类传list进来排序
Collections.sort(list, new Comparator<Date>() {
public int compare(Date o1, Date o2) {
try {
if (o1.getTime() > o2.getTime()) {
return 1;//小的放前面
}else {
return -1;
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
});
}