mirror of
https://github.com/LingCoder/OnJava8.git
synced 2026-08-23 22:43:28 +08:00
# 第十四章 流式编程## 流支持
# 第十四章 流式编程## 流支持 翻译 1 小节先
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user