Java新特性玩转JDK8之收集器 group by进阶

DBC 1.6K 0
分组统计

聚合函数进⾏统计查询,分组后统计个数
Collectors.counting() 统计元素个数

public static Collector>
groupingBy(Function classifier,Collector downstream) {
return groupingBy(classifier, HashMap::new, downstream);
}

小例子

    public class Main {
        public static void main(String[] args) throws Exception {
            List<Student> students = Arrays.asList(new Student("广东", 23), new Student("广东", 24),
                    new Student("广东", 23),
                    new Student("北京", 22), new Student("北京", 20),
                    new Student("北京", 20), new Student("海南", 25));


            Map<String,Long> listMap =  students.stream().collect(Collectors.groupingBy(obj->obj.getProvince(),Collectors.counting()));

            listMap.forEach((key,value)->{
                System.out.println(key+"人数有"+value);
            });


        }
    }


class Student {
    private int age;

    private String province;


    public Student(String province, int age) {
        this.province = province;
        this.age = age;
    }

    public Student() {
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }
}
控制台输出Java新特性玩转JDK8之收集器 group by进阶插图

发表评论 取消回复
表情 图片 链接 代码

分享