栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

在service层对集合进行分组处理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在service层对集合进行分组处理

问题是这样的:比方现在有一个集合List,里面有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 list = new ArrayList<>();
    list.add(Anna);
    list.add(Bill);
    list.add(Clark);
    //---------数据添加完毕
    //创建一个存储部门id的Set
    Set set = new HashSet<>();
    for (User user : list) {
        set.add(user.getDeptId());
    }
    //根据deptId进行分组
    Map> listMap = list.stream().collect(Collectors.groupingBy(t -> t.getDeptId()));
    for (String deptIdItem : set) {
        System.out.println("-------------");
        List users = listMap.get(deptIdItem);
        for (User user : users) {
            System.out.println("部门编号为:" + user.getDeptId() + "的员工:" + user.getName() + "前来报到!");
        }
    }

}

运行结果如下:

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

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

需要的依赖

import org.junit.Test;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030989.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号