主要观点总结
本文介绍了Java中的Stream原理,包括其特点、运行流程、类图介绍以及源码分析。通过示例代码讲解了Stream的使用和操作流程。
关键观点总结
关键观点1: Stream的三大特点
Stream并不存储元素,元素可能存储在底层的集合中,或是按需生成;流的操作不会修改其数据元素,而是生成一个新的流;流的操作是尽可能惰性执行的,这意味着直至需要其结果时,操作才会执行。
关键观点2: Stream的运行流程
搭建流水线,定义各阶段功能;从终结点反向索引,生成操作实例Sink;数据源送入流水线,经过各阶段处理后,生成结果。
关键观点3: Stream类图介绍
Stream是一个接口,主要定义了对Stream的操作,包括中间操作与终结操作。中间操作对流进行转化,终结操作启动流水线,获取结果数据。
关键观点4: 源码分析
通过源码分析,可以看到Stream的实现细节,包括如何定义流水线中间节点、终结操作、反向回溯生成操作实例以及启动流水线的过程。
文章预览
阿里妹导读 本文简单讲述了Stream原理,并以一段比较简单常见的stream操作代码为例进行讲解。 大家都知道可以将Collection类转化成流(Stream)进行操作,代码变得简约流畅,写起来一气呵成。为什么流能支持这种流水线式工作模式,用以替代for循环呢?接下来让我们来简单探究下。 下面是一段比较简单常见的stream操作代码,经过映射与过滤操作后,最后得到的endList=["ab"],下文讲解都会以此代码为例。 List startlist = Lists.newArrayList("a","b","c"); List endList = startlist.stream().map(r->r+"b").filter(r->r.startsWith("a")).collect(Collectors.toList()); 流的三大特点 当我们查阅资料时,得到了流有三大特点: 1.流并 不存储元素 。这些元素可能 存储在底层的集合中 ,或者是按需生成。 2.流的操作不会修改其数据元素,而是生成一个新的流。 3.流的操作是尽可能 惰性执行 的。这
………………………………