Java中怎样根据对象list的某对象的属性进行分组
场景
获取到了员工对象的list,每个员工对象有一个部门Id的属性,怎样根据这个部门id实现将这个list进行分组,
使部门id相同的分在一组。
具体实现效果类似于sql 查询中的group by。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
首先获取这个对象的list
List<KqsjTian> kqsjTianList = kqsjTianService.tjselectkqsj(kqsjSelectParam);
其中KqsjTian是对象,其有部门id属性
Map<Long, List<KqsjTian>> bmListMap = new HashMap<Long, List<KqsjTian>>();
bmListMap = kqsjTianList.stream().collect(Collectors.groupingBy(kqsjTian -> kqsjTian.getBmid()));
然后调用list的stream方法再调用collect方法,前面声明的map第一个参数是分组的依据。
这里是部门id是long型的,所以第一个参数是Long型的,然后kqsjTian.getBmid()是获取每个对象的部门id属性。
获取分组后的数据的大概数据结构如下
获取之后就可以遍历这个map进行分别的处理
for (Map.Entry<Long, List<KqsjTian>> entry : bmListMap.entrySet()) {List<KqsjTian> currnrtbmList = entry.getValue();for (KqsjTian kqsjTian:currnrtbmList) {//计算考勤人数if(kqsjTian.getKqzt()!=null && Constants.KQZT_ZC.contains(kqsjTian.getKqzt())){kqrs++;}}
}
每一个entry是一组bmid相同的list,要获取每一个entry的key即部门id
entry.getKey()
获取每个的value
List<KqsjTian> currnrtbmList = entry.getValue();
Java中怎样根据对象list的某对象的属性进行分组相关推荐
- java中怎样创建多个对象,java中StringBuilder.appent方法创建几个对象
在Java中StringBuilder是继承AbstractStringBuilder,在AbstractStringBuilder是byte[] value; 存放字符内容 public Abstr ...
- 四十三、深入Java中的数组流,数据流和对象流操作
@Author:Runsen @Date:2020/6/8 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...
- 6.java中什么是类_类、对象(java基础知识六)
1.Java约定俗成 java约定俗成1,类名接口名 一个单词首字母大写,多个单词每个单词首字母都大写2,方法名和变量名 一个单词全部小写,多个单词从第二个单词首字母大写 建议:如果能用英语尽量用英语 ...
- Java中,你真的了解你的对象吗?
面向对象的编程语言 众所周知,Java是一门面向对象的编程语言,有人会问,什么是面向对象的编程语言呢,通常听到最多又最古老的话就是"万物皆对象",那么你对你的"对象&qu ...
- resultJP在Java中_java result是如何直接变为对象的
importjava.sql.*;publicclassGradation{//创建类staticConnectioncon;//声明Connection对象staticStatementsql;// ...
- java中BOM是什么_Java-BOM与DOM对象
一.BOM对象 BOM(Browser Object Model)是指浏览器对象模型,可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执行其他与页面内容不直接相 ...
- java猫抓老鼠_用猫抓老鼠的实例理解java中面向对象的编程与类和对象以及方法的概念...
今天看到马士兵讲的关于面向对象编程的思路,用了一个猫抓老鼠的例子,我觉得这个例子非常形象,于是写在这里,方便学习理解和以后查看 class cat{ //声明一个类–"猫" int ...
- java中什么是类?什么是对象?
首先什么是对象呢?可谓是万物皆对象,对象是客观存在的事物,可以说任何客观存在的都是可以成为对象,一台电脑,一直钢笔,一个人,一辆轿车等等,都是可以成为对象. 那么什么是类呢?类是对象的模子,具有相同属 ...
- java中反射机制通过字节码文件对象获取字段和函数的方法
pclass = Class.forName("get_class_method.Person");//Field ageField = pclass.getField(" ...
- Java中的Set集合接口实现插入对象不重复的原理
当使用set集合时,是需要重写set相关类的hashCode和equals方法的. 在java的集合中,判断两个对象是否相等的规则是: 1).判断两个对象的hashCode是否相等 . 如 ...
最新文章
- asp提供在线文章翻译的功能(转)
- MySQL数据类型--------字符串类型实战
- LeetCode 121. Best Time to Buy and Sell Stock--Java,Python,C++解法
- android studio 显示view树_Android 沉浸式解析和轮子使用
- leetcode算法题--重建二叉树
- 第22节 三个败家子(22)——霸王无敌
- 初学Java ssh之Spring 第二篇
- HashMap是如何工作的
- python根须系统斜杠_深入浅出Python中的os模块
- WPF中的图像处理简介
- Mac系统下设置Maven环境
- “百度开放云编程马拉松”成都赛区19件作品及团队介绍
- python 入门学习,52周存钱挑战
- 加法C语言基础程序,C语言菜鸟基础教程之加法
- Linux stress命令详解
- 程序员面试必问:你为什么要离开上一家公司。你会怎么回答?
- c语言贾宗璞答案,c语言程序设计答案贾宗璞 许合利
- Tcl学习0——Tcl和Tk介绍
- 选择题库中的试题动态生成试卷(word格式)
- 《C语言程序设计》江宝钏主编-习题4-2-分段函数
热门文章
- Windows 10安装CUDA10.1+cudnn7.6.0+Pytorch1.3.0
- Ubuntu16.04安装ROS时,sudo rosdep init报错,Error: cannot download default sources list from:
- ps里面怎么插入流程图_photoshop cs6绘画带箭头简单流程图的操作步骤介绍
- 解决:Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:2.3.2问题
- 计算机cpu 和 主板型号,CPU和主板怎么搭配?intel七代/八代/九代处理器和主板搭配对照表...
- js 调用php 导出表格,[拿来主义]使用layui纯JS导出html页面中的table为excel
- jsp 下拉列表选取触发function_Bootstrap下拉菜单样式
- 双稳态电路的两个稳定状态是什么_干货|常见的脉冲电路到底有何用途和特点?终于了解了!|脉冲|晶体管|双稳|单稳|振荡器...
- 传输层端口号的范围是多少?被分为哪两部分_青岛家用电器检测费用多少
- LVS-DR+Keepalived 高可用群集