zoukankan      html  css  js  c++  java
  • JAVA8学习——Stream底层的实现四(学习过程)

    Stream的深入(四)

    从更高角度去看一下:类与类之间的设计关系 (借助IDEA的图形处理工具 Ctrl+Alt+U)。

    ReferencePipeline的三个实现的子类:

    1. Head
    2. StatelessOp
    3. StatefulOp

    在没有终止操作之前:都是在数据的构造和构建阶段。

    终止操作:(TerminalOp的实现类)有4种

    1. FindOps
    2. MactchOps
    3. ReduceOps
    4. ForEachOps

    拿ForEachOp实现类类来看(其他的几类终止操作的结构类似)

    Sink (饮水槽)

    这个名字起的很到位。饮水槽,顺着就流走了。

    作用:从高处流到低处。让一个流从源开始不断的流向 ...ops...

    begin - accept - end - > TerminalSink

    流的实现方式,就显而易见了。

    并行流:是通过 ForkJoin 框架来完成的

    ForkJoinTask 是框架的底层类。

    ForkJoinPool 是框架的支撑类。


    至于:集合的forEach 和 流的 forEach 运行结果相同。

            List<String> list = Arrays.asList("hello", "world", "welcome");
            list.stream().forEach(System.out::println);
            list.forEach(System.out::println);
    

    集合的forEach ()和流没有任何的关系,只是实现了lambda表达式,更方便了而已。

    对于这个简单的操作来说:还是直接运用集合提供的遍历方法比较简单。

    关于流,就到这里。

    lambda表达式相关的结束了

    函数式接口相关结束了

    流相关的内容就开始结束了

  • 相关阅读:
    实习笔记day03
    实习笔记day02
    实习笔记day01
    第4章:数组与方法
    栈内存与堆内存的区别
    java数据类型
    保护模式指令
    空描述符
    段描述符
    全局描述符表
  • 原文地址:https://www.cnblogs.com/bigbaby/p/12165405.html
Copyright © 2011-2022 走看看