java8 lanbda表达式对list对象去重,对象属性转成string



需求:对ulist中的mobilTel去重合并成逗号分隔的String,以下三行代码含义
参数类型说明: List<User> ulist,String userinfo

1 因为部分用户的mobileTel为空,则先去除空的数据
2 对非空的list进行去重
3 对特定属性进行逗号分隔
ulist = ulist.stream().filter(c -> c.getMobilTel() != null).collect(Collectors.toList());
ulist = ulist.stream().collect(Collectors.collectingAndThen(
        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(User::getMobilTel))), ArrayList::new));
userInfo = ulist.stream().map(c -> c.getMobilTel()).collect(Collectors.joining(","));

 头两行代码可以合并

  ulist = ulist.stream().filter(c -> c.getMobilTel() != null).collect(Collectors.collectingAndThen(
                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(User::getMobilTel))), ArrayList::new));
  userInfo = ulist.stream().map(c -> c.getMobilTel()).collect(Collectors.joining(","));

  

posted @ 2022-01-05 14:53  文争青  阅读(927)  评论(0编辑  收藏  举报