技术的更新总是很快,java 9 已经发布了有一段时间啦,增加了很多新的特性,其中 Stream API 也做了增强,添加了一下方法:takeWhile(), dropWhile(), iterate(), and ofNullable()
takeWhile()
方法依据 predicate 条件从流中提取元素,一旦predicate失败,它就停止并返回流,所以下面的条件 7 不是偶数,后续的 8,10 不会输出。
按照 predicate 的条件,是按顺序到集合中遍历元素,所以对于 set 集合,里面的顺序不是一定的,所以每次操作不一定会输出相同的结果。
Stream.dropWhile()
这个方法和 takeWhile 作用相反的,依据 predicate 条件从流中删除元素,一旦 predicate 失败,则停止。
和 takeWhile 一样,对于无序的集合,输出的结果不是固定的。
、
Stream.ofNullable()
如果指定元素为非null,则获取一个元素并生成单个元素流,元素为null则返回一个空流。
Stream.iterate()
Stream 已经有一个 iterate 产生流,下面的示例将生成数字1,2,3,4无限流.
可以使用 limit 限制
接下来就是 java 9 中增强的方式,这种和我们写for 循环的方式类似。
参考文档:https://www.callicoder.com/java-9-stream-api-enhancements/