分组

视频讲解 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分钟视频学习

最新文章

  1. HDU2544 最短路dij
  2. linux下使用sftp
  3. 写sql语句连接的时候注意的一个小细节
  4. 20.时钟抖动(jitter)和时钟偏移(skew)的概念?
  5. win7 64下安装mysql-python报错的解决办法
  6. compileSdkVersion,buildToolsVersion还有targetSdkVersion要一致,从而避免build的时候报错
  7. EventQueue.invokeLater(new Runnable())
  8. apt-get install 出问题怎么办?
  9. .Net语言 APP开发平台——Smobiler学习日志:HoverBackColor属性的简单介绍
  10. DomeOS部署
  11. Difference between ulimit, lsof, cat /proc/sys/fs/file-max
  12. 关于js-angularJS的路由传参
  13. 怎么打开在.bashrc文件以及设置颜色
  14. centos7下安装docker(15.3跨主机网络-macvlan)
  15. IDEA中设置注释模板的方法
  16. SSD(single shot multibox detector)算法及Caffe代码详解[转]
  17. Revit对齐工具之多重对齐
  18. AXI Quad SPI
  19. 大数据【七】HBase部署
  20. excel中文转成拼音字母(包括首字母大写)

热门文章

  1. 菜鸟刷面试题(五、Java容器篇)
  2. git branch/meger step(3)
  3. [Luogu] 火柴排队
  4. codeforces#1108E2. Array and Segments (线段树+扫描线)
  5. 8. 使用Zuul构建微服务网关
  6. MySQL优化相关参数--先做个记录,以后可能用得到
  7. java日期大小比较
  8. ubuntu下最好用的防火墙shadaarp ,带主动防御
  9. Access denied for user &#39;root&#39;@&#39;localhost&#39;问题的解决
  10. chrome调试笔记