Lambda_13 函数表达式 Stream map reduce聚合计算方法 ╰+哭是因爲堅強的太久メ 2022-11-20 04:53 68阅读 0赞 ### Stream reduce聚合计算方法 ### 1. 通常于map搭配使用 map 提取需要统计的数据 2. reduce聚合计算方法 进行统计 代码示例: public class Lambda14 { public static void main(String[] args) { List<Student> students = Arrays.asList(new Student("张三", 18), new Student("李四", 19), new Student("王五", 21), new Student("赵六", 22)); /** * 内部类实现stream reduce */ Integer sumAge = students.stream().map(stu -> stu.getAge()).reduce(new BinaryOperator<Integer>() { @Override public Integer apply(Integer i1, Integer i2) { System.out.println("i1:" + i1 + ",i2:" + i2); return i1 + i2; } }).get(); System.out.println("内部类实现stream reduce"); System.out.println(sumAge); /** * Lambda实现stream reduce */ System.out.println("Lambda实现stream reduce"); Integer sumAgelambda = students.stream().map(Student::getAge).reduce((i1, i2) -> i1 + i2).get(); System.out.println(sumAgelambda); } } class Student { private String name; private Integer age; public Student(String name, Integer age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; } } 输出: 内部类实现stream reduce i1:18,i2:19 i1:37,i2:21 i1:58,i2:22 80 Lambda实现stream reduce 80
还没有评论,来说两句吧...