首页 > 编程语言 > 详细

JAVA8_STREAM

时间:2021-01-08 09:20:47      阅读:33      评论:0      收藏:0      [点我收藏+]

JAVA8_STREAM

StreamJava8的一大亮点,是对容器对象功能的增强**

流的方法

??Stream的方法分为两种,一种是中间操作,一种是终端操作;

??中间操作(Intermediate Operations):中间操作会返回一个新的流,一个流可以后面跟随零个或多个中间操作。其目的主要是打开流,做出某种程度的数据映射/过滤,然后会返回一个新的流,交给下一个操作使用。这类操作都是惰性化的(lazy),就是说,仅仅调用到这类方法,并没有真正开始流的遍历。而是在终端操作开始的时候才真正开始执行;中间操作包括

filter():过滤
map():映射
flatMap():
distinct():去重
sorted():排序
peek()
limit():限制条数
skip():跳过条数

??终端操作(Terminal Operations):是指返回最终的结果。一个流只能有一个terminal操作,当这个操作执行后,流就被使用了,无法再被操作。所以这必定是流的最后一个操作。Terminal操作的执行,才会真正开始流的遍历,并且会生成一个结果,或者一个 side effect;终端操作包括:

forEach()
forEachOrdered()
toArray()
reduce()
collect()
min()
max()
count()
anyMatch()
allMatch()
noneMatch()
findFirst()
findAny()
中间操作

??延迟执行是中间操作的一个重要特点,延迟执行是中间操作,延迟到遇到终端操作时,需要中间操作的结果,才会执行中间操作。

??流只遍历一次,是流的另一个特性。比如一个list,中间操作有filter,map,sort,流的执行并不是先变量所有的元素,经过filter操作,再遍历所有元素,进行map操作。而是一个元素生成流,经过filter操作,然后进行map操作,再进行sort操作,最后经过终端操作。如果终端操作还没有结束,再进入下一个元素的循环。

待补充

??

JAVA8_STREAM

原文:https://www.cnblogs.com/yanghanwen/p/14249351.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!