废话不多说所直接上代码
1. 只对某个属性分组 (personsList为存储实体类的集合)
group by age
Map<Integer,List<Person>> map = personsList.stream().collect(Collectors.groupingBy(Person::getAge));
结果:
2.先分组,再获取所有聚合统计的参数
Map<Integer, DoubleSummaryStatistics> collect = persons.stream().collect(
Collectors.groupingBy(Person::getAge,
Collectors.summarizingDouble(Person::getSalary)));
结果:
3.先分组,然后对工资聚合
sum(salary)
group by age
Map<Integer, Double> collect1 = persons.stream().collect(
Collectors.groupingBy(Person::getAge, Collectors.summingDouble(Person::getSalary)));
结果:
整体代码总体如下:
import java.util.*;
import java.util.stream.Collectors;
public class Test {
public static void main