📜  流更改语句(1)

📅  最后修改于: 2023-12-03 14:56:04.315000             🧑  作者: Mango

流更改语句

流更改语句是一种在使用流处理数据的时候,用来对流中元素进行修改或过滤的语句。本文将会介绍流更改语句及其使用。

forEach

forEach 是一个终端操作,它接受一个 Consumer 函数作为参数。Consumer 函数可以直接修改流中的元素,这使得 forEach 能够用作简单的流更改语句。

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream().forEach(i -> System.out.println(i * 2));

输出结果:

2
4
6
8
10
map

map 是一个中间操作,它将流中的元素通过一个 Function 函数进行转换,并返回新的流。这使得 map 能够用作流更改语句。例如,下面的代码将字符串流中的字母转换为大写。

List<String> list = Arrays.asList("hello", "world");
list.stream().map(s -> s.toUpperCase()).forEach(System.out::println);

输出结果:

HELLO
WORLD
filter

filter 是一个中间操作,它接受一个 Predicate 函数作为参数,用于过滤流中的元素,并返回一个新的流。这使得 filter 能够用作流更改语句。例如,下面的代码将数字流中的奇数过滤掉。

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream().filter(i -> i % 2 == 0).forEach(System.out::println);

输出结果:

2
4
flatMap

flatMap 是一个中间操作,它将流中的每个元素通过一个 Function 函数转换为一个新的流,并将所有新的流合并为一个流。这使得 flatMap 能够用作流更改语句。例如,下面的代码将字符串流中的每个单词拆分成字母并转换为大写。

List<String> list = Arrays.asList("hello world", "java stream");
list.stream().flatMap(s -> Arrays.stream(s.split(" "))).map(s -> s.toUpperCase()).forEach(System.out::println);

输出结果:

HELLO
WORLD
JAVA
STREAM
总结

以上介绍了流更改语句中 forEach、map、filter、flatMap 四种常见的流更改语句。流更改语句可以帮助程序员更方便地处理流中的数据,有助于提高程序的效率和质量。

本文示例代码片段:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream().forEach(i -> System.out.println(i * 2));

List<String> list = Arrays.asList("hello", "world");
list.stream().map(s -> s.toUpperCase()).forEach(System.out::println);

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream().filter(i -> i % 2 == 0).forEach(System.out::println);

List<String> list = Arrays.asList("hello world", "java stream");
list.stream().flatMap(s -> Arrays.stream(s.split(" "))).map(s -> s.toUpperCase()).forEach(System.out::println);