Stream系列(十三) GroupingBy方法使用
2024-09-05 08:17:42
分组
视频讲解 https://www.bilibili.com/video/av78225682/
EmployeeTestCase.java
package com.example.demo; import lombok.extern.log4j.Log4j2;
import org.junit.Test; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; @Log4j2
public class EmployeeTestCase extends BaseTestCase {
@Test
public void groudBy(){
//根据薪酬获取员工列表
Map<Double,List<Employee>> map = list.stream()
.collect(Collectors.groupingBy(Employee::getSalary));
System.out.println("map:"+map);
//根据薪酬获取员工数量
Map<Double,Long> map2 = list.stream()
.collect(Collectors.groupingBy(Employee::getSalary,Collectors.counting()));
System.out.println("map2:"+map2);
//根据薪酬获取员工薪酬总数
Map<Double,Double> map3 = list.stream()
.collect(Collectors.groupingBy(Employee::getSalary,Collectors.summingDouble(Employee::getSalary)));
System.out.println("map3:"+map3);
}
}
BaseTestCase.java
package com.example.demo; import java.util.Arrays;
import java.util.List; public class BaseTestCase {
protected static final List<Employee> list = Arrays.asList(
new Employee(1, "Alex", 1000),
new Employee(2, "Michael", 2000),
new Employee(3, "Jack", 1500),
new Employee(4, "Owen", 1500),
new Employee(5, "Denny", 2000));
}
结果:
map:{1500.0=[Employee(id=3, name=Jack, salary=1500.0), Employee(id=4, name=Owen, salary=1500.0)], 2000.0=[Employee(id=2, name=Michael, salary=2000.0), Employee(id=5, name=Denny, salary=2000.0)], 1000.0=[Employee(id=1, name=Alex, salary=1000.0)]}
map2:{1500.0=2, 2000.0=2, 1000.0=1}
map3:{1500.0=3000.0, 2000.0=4000.0, 1000.0=1000.0}
关注公众号,坚持每天3分钟视频学习
最新文章
- HDU2544 最短路dij
- linux下使用sftp
- 写sql语句连接的时候注意的一个小细节
- 20.时钟抖动(jitter)和时钟偏移(skew)的概念?
- win7 64下安装mysql-python报错的解决办法
- compileSdkVersion,buildToolsVersion还有targetSdkVersion要一致,从而避免build的时候报错
- EventQueue.invokeLater(new Runnable())
- apt-get install 出问题怎么办?
- .Net语言 APP开发平台——Smobiler学习日志:HoverBackColor属性的简单介绍
- DomeOS部署
- Difference between ulimit, lsof, cat /proc/sys/fs/file-max
- 关于js-angularJS的路由传参
- 怎么打开在.bashrc文件以及设置颜色
- centos7下安装docker(15.3跨主机网络-macvlan)
- IDEA中设置注释模板的方法
- SSD(single shot multibox detector)算法及Caffe代码详解[转]
- Revit对齐工具之多重对齐
- AXI Quad SPI
- 大数据【七】HBase部署
- excel中文转成拼音字母(包括首字母大写)
热门文章
- 菜鸟刷面试题(五、Java容器篇)
- git branch/meger step(3)
- [Luogu] 火柴排队
- codeforces#1108E2. Array and Segments (线段树+扫描线)
- 8. 使用Zuul构建微服务网关
- MySQL优化相关参数--先做个记录,以后可能用得到
- java日期大小比较
- ubuntu下最好用的防火墙shadaarp ,带主动防御
- Access denied for user &#39;root&#39;@&#39;localhost&#39;问题的解决
- chrome调试笔记