File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11# Streams(I)
22
3- 你可能还没意识到Java对函数式编程的重视程度 ,看看Java 8加入函数式编程扩充多少类就清楚了 。Java 8之所以费这么大功夫引入函数式编程,原因有二:
3+ 你可能没意识到Java对函数式编程的重视程度 ,看看Java 8加入函数式编程扩充多少功能就清楚了 。Java 8之所以费这么大功夫引入函数式编程,原因有二:
44
5- 1 . __ 代码简洁 __ , 函数式编程写出的代码简洁且意图明确,使用* stream* 接口让你从此告别* for* 循环。
6- 2 . __ 多核友好 __ ,Java函数式编程使得编写并行程序从未如此简单,你需要的全部就是调用一下` parallel() ` 方法。
5+ 1 . ** 代码简洁 ** 函数式编程写出的代码简洁且意图明确,使用* stream* 接口让你从此告别* for* 循环。
6+ 2 . ** 多核友好 ** ,Java函数式编程使得编写并行程序从未如此简单,你需要的全部就是调用一下` parallel() ` 方法。
77
8- 这一节我们要学习 * stream* ,也就是Java函数式编程的主角。对于Java 7来说* stream* 完全是个陌生东西,* stream* 并不是某种数据结构,它只是数据源的一种视图。这里的数据源可以是一个数组,Java容器或I/O channel等。正因如此要得到一个* stream* 通常不会手动创建,而是调用对应的工具方法,比如:
8+ 这一节我们学习 * stream* ,也就是Java函数式编程的主角。对于Java 7来说* stream* 完全是个陌生东西,* stream* 并不是某种数据结构,它只是数据源的一种视图。这里的数据源可以是一个数组,Java容器或I/O channel等。正因如此要得到一个* stream* 通常不会手动创建,而是调用对应的工具方法,比如:
99
1010- 调用` Collection.stream() ` 或者` Collection.parallelStream() ` 方法
1111- 调用` Arrays.stream(T[] array) ` 方法
@@ -129,7 +129,7 @@ stream.flatMap(list -> list.stream())
129129
130130上述代码中,原来的` stream ` 中有两个元素,分别是两个` List<Integer> ` ,执行` flatMap() ` 之后,将每个` List ` 都“摊平”成了一个个的数字,所以会新产生一个由5个数字组成的` Stream ` 。所以最终将输出1~ 5这5个数字。
131131
132- ## 小结
132+ ## 结语
133133
134134截止到目前我们感觉良好,已介绍` Stream ` 接口函数理解起来并不费劲儿。如果你就此以为函数式编程不过如此,恐怕是高兴地太早了。下一节对` Stream ` 规约操作的介绍将刷新你现在的认识。
135135
You can’t perform that action at this time.
0 commit comments