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表达式相关的结束了

    函数式接口相关结束了

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

  • 相关阅读:
    MVC MVP MVVM三者的区别
    有状态组件 和 无状态组件的区别
    判断数据类型的几种方法
    bind的使用
    新时代web组件开发标准
    node.js上传文件
    封装的组件
    mysql数据库比较,各数据库不同之处
    node.js中使用Redis
    centos下安装nodejs的三种种方式
  • 原文地址:https://www.cnblogs.com/bigbaby/p/12165405.html
Copyright © 2011-2022 走看看