在service层对集合进行分组处理
问题是这样的:比方现在有一个集合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层对集合进行分组处理相关推荐
- ##管家婆项目(service层)
管家婆项目(service层) package cn.kgc.gjp.service;import cn.kgc.gjp.dao.ZhangWuDao; import cn.kgc.gjp.domai ...
- 实战SSM_O2O商铺_46【Redis缓存】头条信息+商铺目录Service层加入缓存
文章目录 概述 HeadLineServiceImpl的改造 代码 单元测试 ShopCategoryServiceImpl的改造 代码 单元测试 Github地址 概述 根据数据的特点,不经常变动的 ...
- 实战SSM_O2O商铺_45【Redis缓存】配置Redis在Service层加入缓存
文章目录 概述 Windows下安装Redis O2O-Service层加入缓存的配置步骤 1. pom.xml 添加jedis依赖包 2. redis配置文件 3.spring-dao.xml加载r ...
- 实战SSM_O2O商铺_05集成SSM后验证DAO层、Service层、Controller层的配置
文章目录 概述 验证DAO层的配置 接口 SQL映射文件 单元测试类 基类 DAO层单元测试类 验证Service层的配置 接口以及实现类 单元测试类 验证Controller层的配置 控制层 启动服 ...
- java 获取service_Java service层获取HttpServletRequest工具类的方法
Java service层获取HttpServletRequest工具类的方法 大家都知道 能在Controller/action层获取HttpServletRequest,但是这里给大家备份的是从代 ...
- controller的异常处理以及service层的事务控制___controller层 trycatch不影响service层抛出的异常
controller的异常处理以及service层的事务控制 最近写代码涉及到一些事务,上午终于把代码给理顺了,之前不太清楚在哪里做异常处理,导致代码遍地try-catch,相当难看. 还是基于con ...
- SpringBoot实现Java高并发秒杀系统之Service层开发(二)
继上一篇文章:SpringBoot实现Java高并发秒杀系统之DAO层开发 我们创建了SpringBoot项目并熟悉了秒杀系统的表设计,下面我们将讲解一下秒杀系统的核心部分:Service业务层的开发 ...
- service层的意义
转自bravezhe的专栏 MVC是web开发中常见的程序结构. 简单的mvc结构如下: view层:显示层. control层:业务层,集合了各种action. model层:模型层,一般和数据打交 ...
- 对SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层等层的理解
SSM 是 Spring + SpringMVC + Mybatis集成的框架. MVC即model view controller.(模型,视图,控制器) 一.entity层(model层,doma ...
最新文章
- Redis和Memcache的区别是什么
- 连影--影子007的回忆
- 【集训队作业2018】喂鸽子
- MySQL主从同步(复制)
- SAP-ABAP SmartForms之变量显示小技巧
- 大型分布式网站架构设计与实践 第一章《面向服务的体系架构(SOA)》
- OpenCV辅助对象(help objects)(1)_TermCriteria
- 苹果 5G 掉队?!
- java的io中replace咋么使用_Java.io.ObjectOutputStream.replaceObject()方法实例
- 从“五种权力论”说新人入职要点
- JAVA高端编程研发培训班 JAVA开发视频教程
- 从零开始学习音视频编程技术
- 回首13我们奋斗在14的路上
- 马云给公司年轻员工的一封信
- PMI2016大会最全资料集合
- PCM音频处理(1)——分离声道、以及声音处理
- 中创算力|“商鼎云”助力元宇宙底层建设
- 反射之invoke方法
- java工具类 - word内容文本替换
- JN516中断简单应用
热门文章
- jQuery框架-动态绑定事件on与off-jQuery循环遍历
- 【Houdini】Houdini实现Realflow大脑袋案例
- HC-05蓝牙模块使用教程
- 经常头晕不要不当一回事,小心是这几种严重疾病在作妖!
- Python:使用 turtle 库,绘制一个八角图形。
- 如何通过JavaScript代码实现页面的返回上一页功能的实现
- 英菲尼迪tlme是什么意思_[FACE TIME]第9期:英菲尼迪戴雷造梦者-搜狐汽车
- php获取steam装备信息,steam-web-api – 我如何获得所有CSGO项目的清单,包括皮肤名称,质量和稀有度?...
- 微信商城开发系列第四篇 不写代码玩转微信公众号
- 中国式危机公关9加1策略(第十四章 国外危机应对案例参考)