问题是这样的:比方现在有一个集合List<User>,里面有N多条数据,User实体类如下:

我们有这样一个需求:要看看每个部门下面都有哪些员工?

可能有的小伙伴会觉得:这问题狗都知道怎么解决!拉到Dao层一个Group by,不就完事了?

但是,有的时候,这个list集合,并不一定是你从数据库获取的,是你前面一系列操作存储在service层的临时集合,那要怎么办呢?让头发还茂密的小young来教你!

第一步,我们需要用一个Set来存储部门id,Set的特性是自动去重,这个你总该知道吧!然后就有了下列操作:

@Test
public void test(){//模拟集合中存储了一些数据User Anna = new User("1001", "anna", "1", 20);User Bill = new User("1002", "bill", "2", 21);User Clark = new User("1003", "clark", "1", 19);List<User> list = new ArrayList<>();list.add(Anna);list.add(Bill);list.add(Clark);//---------数据添加完毕//创建一个存储部门id的SetSet<String> set = new HashSet<>();for (User user : list) {set.add(user.getDeptId());}//根据deptId进行分组Map<String, List<User>> listMap = list.stream().collect(Collectors.groupingBy(t -> t.getDeptId()));for (String deptIdItem : set) {System.out.println("-------------");List<User> users = listMap.get(deptIdItem);for (User user : users) {System.out.println("部门编号为:" + user.getDeptId() + "的员工:" + user.getName() + "前来报到!");}}}

运行结果如下:

这样,就实现了我们的需求!当然,实际开发中,可能在分组之后会有很多处理,我们这里仅仅带领大家实现分组,后续操作,还是需要结合需求去搞的~

感谢阅读,如果你觉得文章对你有帮助,就分享给更多的猿吧!

需要的依赖

import org.junit.Test;

在service层对集合进行分组处理相关推荐

  1. ##管家婆项目(service层)

    管家婆项目(service层) package cn.kgc.gjp.service;import cn.kgc.gjp.dao.ZhangWuDao; import cn.kgc.gjp.domai ...

  2. 实战SSM_O2O商铺_46【Redis缓存】头条信息+商铺目录Service层加入缓存

    文章目录 概述 HeadLineServiceImpl的改造 代码 单元测试 ShopCategoryServiceImpl的改造 代码 单元测试 Github地址 概述 根据数据的特点,不经常变动的 ...

  3. 实战SSM_O2O商铺_45【Redis缓存】配置Redis在Service层加入缓存

    文章目录 概述 Windows下安装Redis O2O-Service层加入缓存的配置步骤 1. pom.xml 添加jedis依赖包 2. redis配置文件 3.spring-dao.xml加载r ...

  4. 实战SSM_O2O商铺_05集成SSM后验证DAO层、Service层、Controller层的配置

    文章目录 概述 验证DAO层的配置 接口 SQL映射文件 单元测试类 基类 DAO层单元测试类 验证Service层的配置 接口以及实现类 单元测试类 验证Controller层的配置 控制层 启动服 ...

  5. java 获取service_Java service层获取HttpServletRequest工具类的方法

    Java service层获取HttpServletRequest工具类的方法 大家都知道 能在Controller/action层获取HttpServletRequest,但是这里给大家备份的是从代 ...

  6. controller的异常处理以及service层的事务控制___controller层 trycatch不影响service层抛出的异常

    controller的异常处理以及service层的事务控制 最近写代码涉及到一些事务,上午终于把代码给理顺了,之前不太清楚在哪里做异常处理,导致代码遍地try-catch,相当难看. 还是基于con ...

  7. SpringBoot实现Java高并发秒杀系统之Service层开发(二)

    继上一篇文章:SpringBoot实现Java高并发秒杀系统之DAO层开发 我们创建了SpringBoot项目并熟悉了秒杀系统的表设计,下面我们将讲解一下秒杀系统的核心部分:Service业务层的开发 ...

  8. service层的意义

    转自bravezhe的专栏 MVC是web开发中常见的程序结构. 简单的mvc结构如下: view层:显示层. control层:业务层,集合了各种action. model层:模型层,一般和数据打交 ...

  9. 对SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层等层的理解

    SSM 是 Spring + SpringMVC + Mybatis集成的框架. MVC即model view controller.(模型,视图,控制器) 一.entity层(model层,doma ...

最新文章

  1. Redis和Memcache的区别是什么
  2. 连影--影子007的回忆
  3. 【集训队作业2018】喂鸽子
  4. MySQL主从同步(复制)
  5. SAP-ABAP SmartForms之变量显示小技巧
  6. 大型分布式网站架构设计与实践 第一章《面向服务的体系架构(SOA)》
  7. OpenCV辅助对象(help objects)(1)_TermCriteria
  8. 苹果 5G 掉队?!
  9. java的io中replace咋么使用_Java.io.ObjectOutputStream.replaceObject()方法实例
  10. 从“五种权力论”说新人入职要点
  11. JAVA高端编程研发培训班 JAVA开发视频教程
  12. 从零开始学习音视频编程技术
  13. 回首13我们奋斗在14的路上
  14. 马云给公司年轻员工的一封信
  15. PMI2016大会最全资料集合
  16. PCM音频处理(1)——分离声道、以及声音处理
  17. 中创算力|“商鼎云”助力元宇宙底层建设
  18. 反射之invoke方法
  19. java工具类 - word内容文本替换
  20. JN516中断简单应用

热门文章

  1. jQuery框架-动态绑定事件on与off-jQuery循环遍历
  2. 【Houdini】Houdini实现Realflow大脑袋案例
  3. HC-05蓝牙模块使用教程
  4. 经常头晕不要不当一回事,小心是这几种严重疾病在作妖!
  5. Python:使用 turtle 库,绘制一个八角图形。
  6. 如何通过JavaScript代码实现页面的返回上一页功能的实现
  7. 英菲尼迪tlme是什么意思_[FACE TIME]第9期:英菲尼迪戴雷造梦者-搜狐汽车
  8. php获取steam装备信息,steam-web-api – 我如何获得所有CSGO项目的清单,包括皮肤名称,质量和稀有度?...
  9. 微信商城开发系列第四篇 不写代码玩转微信公众号
  10. 中国式危机公关9加1策略(第十四章 国外危机应对案例参考)