Java8之前的分组

代码如下:

    public static List<User> getUserList(){List<User> userList = new ArrayList<>();userList.add(new User("小明",11,"北京",66));userList.add(new User("小红",12,"上海",99));userList.add(new User("小詹",14,"杭州",77));userList.add(new User("小龙",16,"伦敦",55));userList.add(new User("小斯",9,"杭州",33));userList.add(new User("小詹",9,"上海",33));userList.add(new User("小布",12,"伦敦",88));userList.add(new User("小布",12,"上海",55));return userList;}/*** java8之前对象集合根据某个字段分组*/@Testpublic void sortUserListByAge(){List<User> userList = getUserList();Map<String, List<User>> groupByUserCityMap = new HashMap<>();for (User user : userList) {List<User> tmpList = groupByUserCityMap.get(user.getCity());if (tmpList == null) {tmpList = new ArrayList<>();tmpList.add(user);groupByUserCityMap.put(user.getCity(), tmpList);} else {tmpList.add(user);}}System.out.println("按照城市分组后结果:"+groupByUserCityMap);}

输出如下:

按照城市分组后结果:{上海=[User(name=小红, age=12, city=上海, score=99),
User(name=小詹, age=9, city=上海, score=33), User(name=小布, age=12, city=上海, score=55)],伦敦=[User(name=小龙, age=16, city=伦敦, score=55), User(name=小布, age=12, city=伦敦, score=88)], 杭州=[User(name=小詹, age=14, city=杭州, score=77), User(name=小斯, age=9, city=杭州, score=33)], 北京=[User(name=小明, age=11, city=北京, score=66)]}

Java8的分组

代码如下:

    /*** java8根据某个字段分组*/@Testpublic void java8GroupUserList(){List<User> userList = getUserList();Map<String, List<User>> groupByUserNameMap = userList.stream().collect(Collectors.groupingBy(User::getName));System.out.println("按照姓名分组后结果:"+groupByUserNameMap);}

输出如下:

按照姓名分组后结果:{小龙=[User(name=小龙, age=16, city=伦敦, score=55)],
小詹=[User(name=小詹, age=14, city=杭州, score=77), User(name=小詹, age=9, city=上海, score=33)],
小明=[User(name=小明, age=11, city=北京, score=66)],
小红=[User(name=小红, age=12, city=上海, score=99)],
小斯=[User(name=小斯, age=9, city=杭州, score=33)],
小布=[User(name=小布, age=12, city=伦敦, score=88), User(name=小布, age=12, city=上海, score=55)]}

List集合按照某个字段或者属性分组的两种方式相关推荐

  1. List分组的两种方式

    java8之前List分组 假设有个student类,有id.name.score属性,list集合中存放所有学生信息,现在要根据学生姓名进行分组. public Map<String, Lis ...

  2. springboot过滤字段_SpringBoot自定义过滤器的两种方式及过滤器执行顺序

    第一种 @WebFilter + @ServletComponentScan 注解 1.首先自定义过滤器 如下自定义过滤器 ReqResFilter必须实现  javax.servlet.Filter ...

  3. java集合进行排序的两种方式

    java集合的工具类Collections中提供了两种排序的方法,分别是: Collections.sort(List list) Collections.sort(List list,Compara ...

  4. 集合详解(三)----Map的两种遍历方式

    第一种取值方式 第二种取值方式 Map是以键值对(key-value)的方式来存取值的,那么该怎么把Map中的值取出来的,有两种方式,往下看.先定义一个Map,向里面存放一些数据. HashMap m ...

  5. java batch_Java EE 7 Batch中传递属性/参数的2种方式

    java batch 谈到Java EE 7批处理功能,有两种方法可以将属性/参数传递给块和批处理. 本快速指南向您展示了两种方式,在开发批处理Java EE 7方式时可能会经常使用它们. 1.运行前 ...

  6. Java EE 7 Batch中传递属性/参数的2种方式

    对于Java EE 7批处理工具,有两种将属性/参数传递给块和批处理的方法. 本快速指南向您展示了两种方式,在开发批处理Java EE 7方式时可能会经常使用它们. 1.运行前预定义的属性/参数 预定 ...

  7. 遍历集合常见的两种方式

    package sun;import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.u ...

  8. 遍历集合的两种方式:迭代器和增强型for循环

    package drchen.java.demo02;/*遍历集合有两种方式: 1.迭代器(步骤如下)step1:构建集合,并往里面添加元素step2:通过集合对象获取迭代器对象step3:使用whi ...

  9. spring配置属性的两种方式

    spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...

最新文章

  1. 10只机器狗拉卡车!井然有序,毫不费力 | 极客头条
  2. 计算机对文字信息交流方式案例,《信息交流的方式》题本梳理_教师资格面试初中信息技术...
  3. Acwing第 42 场周赛【完结】
  4. 周末狂欢赛2(冒泡排序,概率充电器,不勤劳的图书管理员)
  5. ai对话机器人实现方案_显然地引入了AI —无代码机器学习解决方案
  6. 源码安装zabbix遇到的报错集锦
  7. python编程(最简单的rpc代码)
  8. CTO 说了,如果发现谁用 SELECT * 查询直接开除
  9. Java、JSP基于Java的题库管理系统的设计与实现
  10. 上拉电阻和下拉电阻作用、区别及应用 (转)
  11. python spark pyspark——朴素贝叶斯习题整理
  12. 计算机用户删除会怎样,电脑注销会删掉内容吗,电脑注销后会删除账户吗
  13. vue中用cdn引入优化vender.js大小,和cdn 引入mint-ui的问题
  14. 从头开始构建一台8位计算机 - 完整的零件清单
  15. 保险私有云 IaaS 资源池选型与演进之路 | SmartX 客户实践
  16. Mui picker 的 Bug
  17. 在线教育平台五大商业模式
  18. Intel迅盘应用从入门到精通
  19. 宠物赛道的泡泡玛特|BarkBox 如何靠一流的订阅服务实现 95% 的用户留存
  20. JavaScript设计模式系列—模式篇总结(上)

热门文章

  1. el-table插入备注效果
  2. android变iphone6s,神奇!利用一个APP,iPhone 6 Plus居然秒变Android手机!
  3. 刷流量(python3)-仅供学习交流
  4. 【JavaScript进阶之旅 函数式编程篇 第三十四章】函数组合、结合律、pointfree、使用案例
  5. idea2019配置tomcat
  6. Google Colab | 无法连接到GPU后端
  7. Android编程读取手环数据,模仿小米手环 计步数据的展示 View
  8. 12个原因让你知道微信小程序在2018年大连发展更大!
  9. skt7850鸿蒙策略,2017LCK春季赛3月5日skt vs kt直播视频:skt 2:1 kt获胜
  10. 什么是堆栈——汇编语言入门