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 运行结果相同。

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

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

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

关于流,就到这里。

lambda表达式相关的结束了

函数式接口相关结束了

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

posted @   dawa大娃bigbaby  阅读(218)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示
CONTENTS