# 第十四章 流式编程## 流支持

# 第十四章 流式编程## 流支持
翻译 1 小节先
This commit is contained in:
Joe
2019-04-06 22:53:15 +08:00
committed by GitHub
parent 0809ffaa2d
commit 85233bcb8f

View File

@@ -3,12 +3,22 @@
<!-- Streams -->
# 第十四章 流式编程
<!-- Java 8 Stream Support -->
## 流支持
<!-- Stream Creation -->
Java 设计者面临着一个难题。他们拥有着一系列已经存在的库,这些库不仅仅在 Java 库本身中所使用,并且被用户编写的数百万行代码中使用。那他们如何将一个全新的流的基本概念融入到已经存在的库中?
例如一个简单的例子 `Random`,他们只是增加了更多的方法。只要现有方法没有被改变,遗留代码就不会受到干扰。
一个巨大的挑战来自于使用接口的库。集合类是其中重要的组成部分,因为你想把一个集合转换为流。但是如果你只是在一个接口中增加了一个新的方法,你就会破坏所有实现了你的接口,但是没有实现你新增方法的类。
解决方法在 Java 8 中被引入,就是接口中的 **default** 方法。这个机制在「接口」那一章有介绍。通过 **default** 方法, Java 设计者可以将 stream 方法嵌入到现有类中,他们几乎添加了每一种你可能需要的操作。流方法有三种类型的操作:创建流,修改流中的元素(中间操作, intermediate operations消费流中的元素终端操作, terminal operations。最后一种操作常常代表着收集流中的元素经常是收集到一个集合中
接下来我们查看每一种类型的流操作。
## 流创建
@@ -29,4 +39,5 @@
<!-- 分页 -->
<div style="page-break-after: always;"></div>
<div style="page-break-after: always;"></div>