java 9 中对 Stream API 的增强

技术的更新总是很快,java 9 已经发布了有一段时间啦,增加了很多新的特性,其中 Stream API 也做了增强,添加了一下方法:takeWhile(), dropWhile(), iterate(), and ofNullable()

takeWhile()

方法依据 predicate 条件从流中提取元素,一旦predicate失败,它就停止并返回流,所以下面的条件 7 不是偶数,后续的 8,10 不会输出。

212427_tAjC_2277632.png

212451_9iGH_2277632.png

按照 predicate 的条件,是按顺序到集合中遍历元素,所以对于 set 集合,里面的顺序不是一定的,所以每次操作不一定会输出相同的结果。

213133_FZty_2277632.png

213154_LnsP_2277632.png

213208_llFw_2277632.png

 

Stream.dropWhile()

这个方法和 takeWhile 作用相反的,依据 predicate 条件从流中删除元素,一旦 predicate 失败,则停止。

213606_iflU_2277632.png

213616_jRBx_2277632.png

和 takeWhile 一样,对于无序的集合,输出的结果不是固定的。

213724_KBw2_2277632.png

213741_rpu5_2277632.png

213753_zNaz_2277632.png

 

Stream.ofNullable()

如果指定元素为非null,则获取一个元素并生成单个元素流,元素为null则返回一个空流。

220528_8xgp_2277632.png

 

Stream.iterate()

Stream 已经有一个 iterate 产生流,下面的示例将生成数字1,2,3,4无限流.

220813_wzaD_2277632.png

可以使用 limit 限制

220923_Tiz1_2277632.png

接下来就是 java 9 中增强的方式,这种和我们写for 循环的方式类似。

221049_GOp8_2277632.png

参考文档:https://www.callicoder.com/java-9-stream-api-enhancements/

转载于:https://my.oschina.net/u/2277632/blog/1618120

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值