List 的Stream().filter()

数据准备:

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);
        });

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

你可能感兴趣的:(Java开发问题,list,数据结构)