Raj*_*jan 12 java java-stream java-9
takeWhile()与Java 9中的filter()有何不同.它有什么额外的实用程序?
Stream.of(1,2,3,4,5,6,7,8,9,10).filter(i -> i < 4 )
.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
这可能是以下会做的
Stream.of(1,2,3,4,5,6,7,8,9,10).takeWhile(i -> i < 4 )
.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
那么这个新功能需要什么呢?
Old*_*eon 19
filter 将从流中删除不满足条件的所有项目.
takeWhile 将在第一次出现不满足条件的项目时中止流.
例如
Stream.of(1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1)
.filter(i -> i < 4 )
.forEach(System.out::print);
Run Code Online (Sandbox Code Playgroud)
将打印
123321
但
Stream.of(1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1)
.takeWhile(i -> i < 4 )
.forEach(System.out::print);
Run Code Online (Sandbox Code Playgroud)
将打印
123
在过滤器为真时取值,然后停止
获取与过滤器匹配的所有值
Stream.of(1,2,3,4,5,6,7,8,9,10).filter(i -> i % 2 == 0 )
.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
这将输出从 2 到 10 的所有偶数。
Stream.of(1,2,3,4,5,6,7,8,9,10).takeWhile(i -> i % 2 == 0 )
.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
这不输出任何内容,因为 1 不是偶数,因此它在输出任何内容之前停止。
| 归档时间: |
|
| 查看次数: |
2431 次 |
| 最近记录: |