List 的Stream().filter()

这段代码展示了如何使用Java的Stream API对一个学生列表进行过滤操作,筛选出男性且身高1.8米以上的学生。接着,计算了所有学生的年龄和身高的总和,并根据年龄进行了分组,输出了每组的年龄统计信息。示例涵盖了数据过滤、聚合操作及分组统计等核心概念。
摘要由CSDN通过智能技术生成

数据准备:

List<Student> studenList = new ArrayList<Student>();
        studenList.add(new Student("李小明",true,18,1.76,LocalDate.of(2001,3,23)));
        studenList.add(new Student("张小丽",false,18,1.61,LocalDate.of(2001,6,3)));
        studenList.add(new Student("王大朋",true,19,1.82, LocalDate.of(2000,3,11)));
        studenList.add(new Student("陈小跑",false,17,1.67,LocalDate.of(2002,10,18)));

使用filter()过滤List //过滤男性 身高1米8以上

 //使用filter()过滤List //过滤男性 身高1米8以上
        List<Student> boys = studenList.stream().filter(s ->s.isSex() && s.getHigh() >= 1.8).collect(Collectors.toList());
        System.out.println(boys);

结果:在这里插入图片描述
年龄和身高的总计>>>>>sum

     //年龄的总计
        int sum_student_age = studenList.stream().mapToInt(Student::getAge).sum();

        //身高的总计
        double sum_student_high = studenList.stream().mapToDouble(Student::getHigh).sum();

        System.out.println("总计身高:"+sum_student_high+"总计年龄"+sum_student_age);

结果:
在这里插入图片描述
根据 年龄分组,再计算出年龄 信息>>>>>>>分组后计算

 //根据 年龄分组,再计算出年龄 信息
        Map<Integer, IntSummaryStatistics> map = studenList.stream().collect(Collectors.groupingBy(Student::getAge,Collectors.summarizingInt(Student::getAge)));

        map.forEach((k,v)->{
            System.out.println("Key:"+k+"value:"+v);
        });

结果:
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值