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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章