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