美文网首页Java 杂谈
java8 - reduce & flatMap 方法

java8 - reduce & flatMap 方法

作者: 良人与我 | 来源:发表于2018-12-20 13:47 被阅读1次

    通过一个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

    相关文章

      网友评论

        本文标题:java8 - reduce & flatMap 方法

        本文链接:https://www.haomeiwen.com/subject/vddzhqtx.html