jdk8-》joining、groupingBy、summarizingInt函数

拼接函数 Collectors.joining
  // 3种重载方法

  Collectors.joining()
  Collectors.joining(“拼接符”)
  Collectors.joining(“拼接符”, “前缀”, “后缀”)

  String result = Stream.of(“springboot”, “mysql”, “html5″,”css3”).collect(Collectors.joining(“,”, “[“, “]”));
 
分组函数 Collectors.groupingBy

Map<String, List<Student>> listMap = students.stream().collect(Collectors.groupingBy(obj -> obj.getProvince()));
key: 分组字段
value: 分组后的结果
 

listMap.forEach((key, value) -> {
  System.out.println(“========”);
  System.out.println(key);
  value.forEach(obj -> {
  System.out.println(obj.getAge());
  });
});
 

分组统计:聚合函数进⾏统计查询,分组后统计个数
Collectors.counting() 统计元素个数
 
案例:根据省份分组后,统计各省份的人数

Map<String, Long> listMap = students.stream().collect(Collectors.groupingBy(Student::getProvince, Collectors.counting()));
listMap.forEach((key, value) -> {System.out.println(key+”省⼈数有”+value);});

 
key: 分组字段
value: 统计个数
 

集合统计:
IntSummaryStatistics summaryStatistics =students.stream().collect(Collectors.summarizingInt(Student::getAge));
System.out.println(“平均值:” + summaryStatistics.getAverage());
System.out.println(“⼈数:” + summaryStatistics.getCount());
System.out.println(“最⼤值:” + summaryStatistics.getMax());
System.out.println(“最⼩值:” + summaryStatistics.getMin());
System.out.println(“总和:” + summaryStatistics.getSum());

 

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注