stream 多字段条件去重

通过TreeSet的比较器进行多字段拼接以set集合的特性去重

List collect1 = users.stream()
                     .collect(Collectors.collectingAndThen(Collectors.toCollection(
                      () ->new TreeSet<>(
                      Comparator.comparing(u -> u.getAge() +";" + u.getName())
                      )), ArrayList::new));


//根据object去重
            ArrayList<Statistics> statisticsArrayList1 = statisticsList1.stream()
                    .collect(Collectors.collectingAndThen
                            (Collectors.toCollection(() ->
                                    new TreeSet<>(Comparator.comparing(Statistics::getObject))), ArrayList::new));
posted @ 2022-03-16 13:59  mini9264  阅读(928)  评论(0编辑  收藏  举报