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