场景:对一组刚毕业的学生按城市进行分组统计,求各组的工资总和,如下:
List<Student> list = new ArrayList<>();
list.add(new Student(1, "张三", "M", "北京", 9886.32));
list.add(new Student(2, "李娟", "F", "北京", 6186.00));
list.add(new Student(3, "老四", "M", "上海", 5586.92));
list.add(new Student(4, "Alice", "F", "北京", 10005.2));
list.add(new Student(5, "大胖", "M", "上海", 6556.32));
list.add(new Student(6, "猴子", "M", "北京", 12058.09));
当时想,这用Java8的Stream之groupingBy不就分分钟钟的事情!没想到翻船了!!!
Map<String, Double> result =list.stream().collect(
Collectors.groupingBy(Student::getCity),
Collectors.summingDouble(Student::getSalary));
报错:
Java8 Stream groupingBy 多级统计求和错误解决方案

本文介绍了在使用Java8的Stream API进行groupingBy操作进行多级分组统计求和时遇到的'non-static method cannot be referenced from a static context'异常。通过分析错误原因,发现是方法使用不当。正确做法是在调用Collectors.groupingBy时,应连续指定所有条件,最后再应用Collectors.summingDouble等统计方法,避免提前关闭括号导致的错误。
最低0.47元/天 解锁文章
693





