初始物料数据
List1. 转Setlist = new ArrayList<>(); list.add("all"); list.add("dfg"); list.add("bnm"); list.add("cff"); list.add("uii"); list.add("uii");
作用: 去重
System.out.println(list); Setset = new HashSet<>(list); System.out.println(set);
结果:
[all, dfg, bnm, cff, uii, uii] [all, bnm, cff, dfg, uii]
2. 转TreeSet
作用: 排序去重
System.out.println(list); Settree = new TreeSet<>(list); System.out.println(tree);
结果:
[all, dfg, bnm, cff, uii, uii] [all, bnm, cff, dfg, uii]
3. Java8 stream
作用: 排序去重
System.out.println(list); Listcollect = list .stream() // 得到流 .distinct() // 去重 .sorted() // 自然排序 .collect(Collectors.toList());//收集并返回 System.out.println(collect);
结果:
[all, dfg, bnm, cff, uii, uii] [all, bnm, cff, dfg, uii]
二、集合泛型为POJO类 1. 根据对象中某一属性筛选去重
根据AddMonitorGetWbsVO对象中的wbsId属性去重
方法1:
public ListgetWbsProject(AddMonitorGetWbsDTO dto) { List monitorWbsProject = riskSourcesMapper.getMonitorWbsProject(dto); return monitorWbsProject.stream().collect( collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(AddMonitorGetWbsVO::getWbsId))), ArrayList::new)); }
方法2:
public ListgetWbsProject(AddMonitorGetWbsDTO dto) { List monitorWbsProject = riskSourcesMapper.getMonitorWbsProject(dto); return monitorWbsProject.stream() .filter(distinctByKey(AddMonitorGetWbsVO::getWbsId)).collect(Collectors.toList()); } public static Predicate distinctByKey(Function super T, ?> keyExtractor) { Map



