Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
南宫梦沉
toBeTopJavaer
提交
73741f59
T
toBeTopJavaer
项目概览
南宫梦沉
/
toBeTopJavaer
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
toBeTopJavaer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
73741f59
编写于
12月 26, 2020
作者:
B
baichangfu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fixed wrong characters in <stream.md>
上级
084b6dc1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
10 deletion
+10
-10
docs/basics/java-basic/stream.md
docs/basics/java-basic/stream.md
+10
-10
未找到文件。
docs/basics/java-basic/stream.md
浏览文件 @
73741f59
...
@@ -66,7 +66,7 @@ filter 方法用于通过设置的条件过滤出元素。以下代码片段使
...
@@ -66,7 +66,7 @@ filter 方法用于通过设置的条件过滤出元素。以下代码片段使
List<String> strings = Arrays.asList("Hollis", "", "HollisChuang", "H", "hollis");
List<String> strings = Arrays.asList("Hollis", "", "HollisChuang", "H", "hollis");
strings.stream().filter(string -> !string.isEmpty()).forEach(System.out::println);
strings.stream().filter(string -> !string.isEmpty()).forEach(System.out::println);
//Hollis,
,
HollisChuang, H, hollis
//Hollis, HollisChuang, H, hollis
**map**
**map**
...
@@ -74,13 +74,13 @@ filter 方法用于通过设置的条件过滤出元素。以下代码片段使
...
@@ -74,13 +74,13 @@ filter 方法用于通过设置的条件过滤出元素。以下代码片段使
map 方法用于映射每个元素到对应的结果,以下代码片段使用 map 输出了元素对应的平方数:
map 方法用于映射每个元素到对应的结果,以下代码片段使用 map 输出了元素对应的平方数:
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
numbers.stream().map(
i -> i*i).forEach(System.out::println);
numbers.stream().map(i -> i*i).forEach(System.out::println);
//9,4,4,9,49,9,25
//9,4,4,9,49,9,25
**limit/skip**
**limit/skip**
limit 返回 Stream 的前面 n 个元素;skip 则是扔掉前 n 个元素。以下代码片段使用 limit 方法保
理
4个元素:
limit 返回 Stream 的前面 n 个元素;skip 则是扔掉前 n 个元素。以下代码片段使用 limit 方法保
留
4个元素:
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
numbers.stream().limit(4).forEach(System.out::println);
numbers.stream().limit(4).forEach(System.out::println);
...
@@ -120,9 +120,9 @@ distinct主要用来去重,以下代码片段使用 distinct 对元素进行
...
@@ -120,9 +120,9 @@ distinct主要用来去重,以下代码片段使用 distinct 对元素进行
### Stream最终操作
### Stream最终操作
Stream的中间操作得到的结果还是一个Stream,那么如何把一个Stream转换成我们需要的类型呢?比如计算出流中元素的个数、将流
装
换成集合等。这就需要最终操作(terminal operation)
Stream的中间操作得到的结果还是一个Stream,那么如何把一个Stream转换成我们需要的类型呢?比如计算出流中元素的个数、将流换成集合等。这就需要最终操作(terminal operation)
最终操作会消耗流,产生一个最终结果。也就是说,在最终操作之后,不能再次使用流,也不能
在
使用任何中间操作,否则将抛出异常:
最终操作会消耗流,产生一个最终结果。也就是说,在最终操作之后,不能再次使用流,也不能
再
使用任何中间操作,否则将抛出异常:
java.lang.IllegalStateException: stream has already been operated upon or closed
java.lang.IllegalStateException: stream has already been operated upon or closed
...
@@ -145,7 +145,7 @@ Stream 提供了方法 'forEach' 来迭代流中的每个数据。以下代码
...
@@ -145,7 +145,7 @@ Stream 提供了方法 'forEach' 来迭代流中的每个数据。以下代码
count用来统计流中的元素个数。
count用来统计流中的元素个数。
List<String> strings = Arrays.asList("Hollis", "HollisChuang", "hollis","Hollis666", "Hello", "HelloWorld", "Hollis");
List<String> strings = Arrays.asList("Hollis", "HollisChuang", "hollis",
"Hollis666", "Hello", "HelloWorld", "Hollis");
System.out.println(strings.stream().count());
System.out.println(strings.stream().count());
//7
//7
...
@@ -160,23 +160,23 @@ collect就是一个归约操作,可以接受各种做法作为参数,将流
...
@@ -160,23 +160,23 @@ collect就是一个归约操作,可以接受各种做法作为参数,将流
//Hollis, HollisChuang, Hollis666, Hollis
//Hollis, HollisChuang, Hollis666, Hollis
接下来,我们还是使用一张图,来演示下,前文的例子中,当一个Stream先后通过filter、map、sort、limit以及distinct处理后
会
,在分别使用不同的最终操作可以得到怎样的结果:
接下来,我们还是使用一张图,来演示下,前文的例子中,当一个Stream先后通过filter、map、sort、limit以及distinct处理后,在分别使用不同的最终操作可以得到怎样的结果:
下图,展示了文中介绍的所有操作的位置、输入、输出以及使用一个案例展示了其结果。 !
[][
6
]

下图,展示了文中介绍的所有操作的位置、输入、输出以及使用一个案例展示了其结果。 !
[][
6
]

### 总结
### 总结
本文介绍了Java 8中的Stream 的用途,优点等。还
接受
了Stream的几种用法,分别是Stream创建、中间操作和最终操作。
本文介绍了Java 8中的Stream 的用途,优点等。还
介绍
了Stream的几种用法,分别是Stream创建、中间操作和最终操作。
Stream的创建有两种方式,分别是通过集合类的stream方法、通过Stream的of方法。
Stream的创建有两种方式,分别是通过集合类的stream方法、通过Stream的of方法。
Stream的中间操作可以用来处理Stream,中间操作的输入和输出都是Stream,中间操作可以是过滤、转换、排序等。
Stream的中间操作可以用来处理Stream,中间操作的输入和输出都是Stream,中间操作可以是过滤、转换、排序等。
Stream的最终操作可以将Stream转成其他形式,如计算出流中元素的个数、将流
装
换成集合、以及元素的遍历等。
Stream的最终操作可以将Stream转成其他形式,如计算出流中元素的个数、将流换成集合、以及元素的遍历等。
[
1
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521192454583.jpg
[
1
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521192454583.jpg
[
2
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521194075219.jpg
[
2
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521194075219.jpg
[
3
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521194556484.jpg
[
3
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521194556484.jpg
[
4
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521242025506.jpg
[
4
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521242025506.jpg
[
5
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521194606851.jpg
[
5
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521194606851.jpg
[
6
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521245463720.jpg
[
6
]:
https://www.hollischuang.com/wp-content/uploads/2019/03/15521245463720.jpg
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录