From 85233bcb8fd955999f56603bfca475379928bcfc Mon Sep 17 00:00:00 2001 From: Joe <736777445@qq.com> Date: Sat, 6 Apr 2019 22:53:15 +0800 Subject: [PATCH] =?UTF-8?q?#=20=E7=AC=AC=E5=8D=81=E5=9B=9B=E7=AB=A0=20?= =?UTF-8?q?=E6=B5=81=E5=BC=8F=E7=BC=96=E7=A8=8B##=20=E6=B5=81=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # 第十四章 流式编程## 流支持 翻译 1 小节先 --- docs/book/14-Streams.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/book/14-Streams.md b/docs/book/14-Streams.md index 5f8bd2f..86965b0 100644 --- a/docs/book/14-Streams.md +++ b/docs/book/14-Streams.md @@ -3,12 +3,22 @@ # 第十四章 流式编程 - + ## 流支持 - + +Java 设计者面临着一个难题。他们拥有着一系列已经存在的库,这些库不仅仅在 Java 库本身中所使用,并且被用户编写的数百万行代码中使用。那他们如何将一个全新的流的基本概念融入到已经存在的库中? + +例如一个简单的例子 `Random`,他们只是增加了更多的方法。只要现有方法没有被改变,遗留代码就不会受到干扰。 + +一个巨大的挑战来自于使用接口的库。集合类是其中重要的组成部分,因为你想把一个集合转换为流。但是如果你只是在一个接口中增加了一个新的方法,你就会破坏所有实现了你的接口,但是没有实现你新增方法的类。 + +解决方法在 Java 8 中被引入,就是接口中的 **default** 方法。这个机制在「接口」那一章有介绍。通过 **default** 方法, Java 设计者可以将 stream 方法嵌入到现有类中,他们几乎添加了每一种你可能需要的操作。流方法有三种类型的操作:创建流,修改流中的元素(中间操作, intermediate operations),消费流中的元素(终端操作, terminal operations)。最后一种操作常常代表着收集流中的元素(经常是收集到一个集合中)。 + +接下来我们查看每一种类型的流操作。 + ## 流创建 @@ -29,4 +39,5 @@ -
\ No newline at end of file + +