1.使用说明

Java 的 Steam API 是java标准库最好的改进之一,让开发者能够快速运算,从而能够有效的利用数据并行计算。Java 8 提供的 Steam 能够利用多核架构实现声明式的数据处理。

在 Java 9 中,Stream API 变得更好,Stream 接口中添加了 4 个新的方法:dropWhile,

takeWhile, ofNullable,还有个 iterate 方法的新重载方法,可以让你提供一个 Predicate (判断条件)来指定什么时候结束迭代。(见下例)

除了对 Stream 本身的扩展,Optional 和 Stream 之间的结合也得到了改进。现在可以通过 Optional 的新方法 stream() 将一个 Optional 对象转换为一个(可能是空的) Stream 对象。(见下例)


2.使用举例

takeWhile()的使用:

用于从 Stream 中获取一部分数据,接收一个 Predicate 来进行选择。在有序的 Stream 中,takeWhile 返回从开头开始的尽量多的元素。

 
 

dropWhile()的使用:

dropWhile 的行为与 takeWhile 相反,返回剩余的元素。

 
 

ofNullable()的使用:

Java 8 中 Stream 不能完全为null,否则会报空指针异常。而 Java 9 中的 ofNullable 方法允许我们创建一个单元素 Stream,可以包含一个非空元素,也可以创建一个空 Stream。

 
 
 
 

iterator()重载的使用:

 
 

Optional类中stream()的使用:

 
 
 
 
 

作者:尚硅谷面试官宋红康
链接:https://www.jianshu.com/p/f1fbe1f0b118
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最新文章

  1. java记录
  2. zepto.js学习
  3. 查看Eclipse版本
  4. python编码-2
  5. HDU 5877 [dfs序][线段树][序]
  6. poj 2109 Power of Cryptography
  7. leecode 归并排序 链表(java)
  8. JavaScript中String对象处理HTML标记中文本的方法
  9. HDOJ 1800 Flying to the Mars 盲目搜索......................so easy...........
  10. SVN解锁失败的解决办法
  11. linux的学习系列 6---打印文件和发送邮件
  12. css样式实现立方体制作
  13. distinct的用法
  14. dataframe的select传入不定参数
  15. linux添加swap分区【转】
  16. 在windows下用vagrant建立lnmp开发环境
  17. 【POJ 3476】A Game with Colored Balls
  18. selenium+python自动化78-autoit参数化与批量上传
  19. Django模型层之多表操作
  20. [LeetCode] 127. Word Ladder _Medium tag: BFS

热门文章

  1. GNU Linux中的SO_RCVLOWAT和SO_SNDLOWAT说明
  2. 第十五章,读取txt文件(C++)
  3. hibernate之4.延迟载入
  4. simple_strtoul()分析
  5. bzoj3173: [Tjoi2013]最长上升子序列(树状数组+二分倒推)
  6. ES设置查询的相似度算法
  7. POJ 1948 DP
  8. Android RecyclerView 设置item间隔的方法
  9. FCC高级编程篇之Validate US Telephone Numbers
  10. 洛谷P2617 Dynamic Rankings 主席树 单点修改 区间查询第 K 大