Java List——lambda表達式的各種處理方式


根據某個屬性分組

  • 返回值:Map<key,List<>>
  • 舉例:根據userSex分組
Map<Integer, List<User>> collect = list.stream().collect(Collectors.groupingBy(User::getUserSex));

根據某個屬性過濾

  • 返回值:List<>
  • 舉例:查找男生(userSex == 1表示男生)
List<User> list = list.stream().filter(user -> user.getUserSex().toString().equals("1")).collect(Collectors.toList());

List轉Map

  • 返回值:Map
  • 舉例
Map<Long, User> userMap = 
userList.stream().collect(Collectors.toMap(User::getId,User->User);
Map<Long, String> userMap = 
userList.stream().collect(Collectors.toMap(User::getId,User::getUserName);
  • 注意:如果集合對象有重復的key,會報錯Duplicate key ....,可以用 (old,new)->old 來設置,如果有重復的key,則保留old,舍棄new
Map<Long, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, user -> user,(old,new)->old));
  • 轉換時,把list多個元素拼接作為map的key值
Map<Long, String> userMap = 
userList.stream().collect(Collectors.toMap(user->user.getId()+"-"+user.getUserName(),user->user));

List排序

  • 升序
list.sort(Comparator.comparing(User::getAge));
  • 倒序
list.sort(Comparator.comparing(User::getAge).reversed());

 提取List某一屬性

  • 返回值:List<>
  • 舉例
List<String> userNames = userList.stream().map(User::getUserName).collect(Collectors.toList());

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM