使用stream流将对象按部分字段去重,并合并部分字段的方法

对一个People类的List集合,如果其中存在姓名、证件号、证件号码一致的,则将数据合并去重,并将所拥有的书籍进行合并

peopleList.stream()
                .collect(Collectors.toMap(
                        item -> item.Name() + item.getIDType()
                                + item.getIDNo(),
                        a -> a, (o1, o2) -> {
                            o1.getBooks().addAll(o2.Books());
                            return o1;
                        }))
                .values().stream().collect(Collectors.toList());

上一篇:Java 比较器


下一篇:leetcode刷题-贪心算法(持续更新)