今天遇到一个需求,就是实体类list跟据多个字段去重
在网上搜了很多,都不对,最终被我找到,特地分享给大家
为了确保大家的需求和我的一样,附图如下
跟据这四个段去重,如果全部重复,就去掉重复,只保留一个,去重之后,变成下面这样
上代码
java8去重(根据部门和供应商,当部门和供应商都相同的情况下看做是重复数据,只写了两个,更多字段,可自行添加)
List<Entity> List= EntityList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getDepartMentid() + ";" + o.getSno))), ArrayList::new));