📅  最后修改于: 2023-12-03 14:56:04.315000             🧑  作者: Mango
流更改语句是一种在使用流处理数据的时候,用来对流中元素进行修改或过滤的语句。本文将会介绍流更改语句及其使用。
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 是一个中间操作,它将流中的元素通过一个 Function 函数进行转换,并返回新的流。这使得 map 能够用作流更改语句。例如,下面的代码将字符串流中的字母转换为大写。
List<String> list = Arrays.asList("hello", "world");
list.stream().map(s -> s.toUpperCase()).forEach(System.out::println);
输出结果:
HELLO
WORLD
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 是一个中间操作,它将流中的每个元素通过一个 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);