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(","));

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM