java8 - reduce & flatMap 方法

通过一个demon ,演示 java8 中如何运用 reduce操作。
基础学生类,包含学生的姓名和年龄信息

@Data
@ToString
@NoArgsConstructor
public class Student  {
    private Integer age;
    private String name;

    public Student(Integer age, String name) {
        this.age = age;
        this.name = name;
    }
}

初始化 学生 list

List<Student> studentList = Lists.newArrayList ();
studentList.add (new Student (28,"river"));
studentList.add (new Student (12,"lucy"));
studentList.add (new Student (22,"frank"));
studentList.add (new Student (33,"kity"));

通过 reduce 方法来计算 学生的总年龄
先将 学生的 list map 为 年龄的 list ,再计算出年龄的总合

Integer totalAge = studentList.stream().map(Student::getAge).reduce(0,(a,b)->a+b);
System.out.println("totalAge : " + totalAge);

执行结果

totalAge : 95

再来看一个 flatmap 的demon
将多个流压扁,压成一个流

List<String> stringList = Lists.newArrayList("hello world" , "hello frank");
stringList.stream().flatMap(t-> Arrays.stream(t.split(" ")))
        .forEach(t-> System.out.println(t));

执行结果

hello
world
hello
frank

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容