Java 8 操作流
来源:互联网 发布:流程优化 编辑:程序博客网 时间:2024/06/05 00:18
什么是流?
流是Java API的新成员,它允许你已声明式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。并且流还可以透明的并行处理,你无需再写任何多线程代码了
比如现在有一个菜肴列表 菜肴类中有菜肴名称name和卡路里calories
现在我们需要把卡路里小于300的菜肴名称按照卡路里排序并保存List中
Java 8前
上面代码分别处理卡路里小于300、匿名类排序、处理排序后菜名列表
此外 这段代码中 lowCaloricDishes的唯一作用就是作为一次性的中间容器,而在Java 8中 实现细节被放在它本该归属的类库了
Java 8
如果想要并行这段代码,你只要把stream()换成parallelStream()即可
再比如我们希望对菜肴类别进行分组
流的特性
通过上面两个例子我们可以发现Java 8的优势
声明式——更简简洁,更宜读
可复合——更灵活
可并行——性能更好
这里需要说明一点,和迭代器类似,流只能遍历一次,遍历完后,我们说这个流已经被消费掉了
所以要记得:流只能被消费一次!
外部迭代与内部迭代
集合:外部迭代
流:内部迭代
流的操作
可以连接起来的流操作称为中间操作,关闭流的操作称为终端操作
总结下流的使用
一个数据源(如集合)来执行一个查询
一个中间操作链,形成一条流的流水线
一个终端操作,执行流水线并生成结果
中间操作有
filter、map、limit、sorted、distinct
终端操作有
forEach、count、collect
下次我们详细分享下可以用的流操作来表达复杂的数据处理查询
比如过滤、切片、查找、匹配、映射、归约、去重、跳过等等
阅读全文
0 0
- Java 8 操作流
- java 8 Stream()操作流介绍
- Java流操作
- java-流的操作
- Java中的流操作
- Java流操作
- java 流操作
- JAVA IO 流操作
- java流操作
- java 流基本操作
- Java中的流操作
- java io流操作
- java IO流操作
- JAVA 内存操作流
- JAVA 内存操作流
- java 内存操作流
- java流操作
- java流操作
- 传统MVC和rest服务调用的区别
- webpack总结
- LeetCode 11. Container With Most Water
- leetcode Add Two Numbers
- Lock的使用
- Java 8 操作流
- 170909_Spring英文文档阅读(五)_2.2 Web_spring-web
- 51nod 1405 树的距离之和 (树形dp)
- Java API 与HBase交互实例 (总结11)
- HTTP(1)之持久链接(关键词:HTTP/持久链接/keep-alive/HTTP persistent connection/HTTP keep-alive/HTTP connection)
- UVALive
- Return
- 一起学安全测试——用Burp Suite进行暴力破解
- pat 乙级 1061. 判断题(15)