码上敲享录 > java入门知识分享 > jdk8根据字段去重

jdk8根据字段去重

上一章章节目录下一章 2021-02-25已有1378人阅读 评论(0)

集合listUsers

方法1:

 List<Users> distinctUsers = listUsers.stream()

               .collect(Collectors.collectingAndThen

                       (Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(t -> t.getSno()))), ArrayList::new)

               );


方法2:

List<Users> distinctUsers = listUsers.stream().filter(distinctByKey(Users::getSno)).collect(Collectors.toList());


public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {

       Map<Object, Boolean> seen = new ConcurrentHashMap<>();

       return object -> seen.putIfAbsent(keyExtractor.apply(object), Boolean.TRUE) == null;

   }


0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交