Java 每个 8 个流和 peek
Java 8 stream for each and peek
我偶然发现了一个我无法解决的带有流的任务。我不得不修改代码以打印 abcABC
而不是 aAbBcC
.
我明白为什么要这样打印了。
// prints 'a b c' then prints 'A B C'
List<String> strings = List.of("a", "b", "c");
strings.stream()
.peek(str -> System.out.println(str))
.map(str -> str.toUpperCase())
.forEach(str -> System.out.println(str));
感谢任何帮助。
这是一种方法:
List<String> strings = List.of("a", "b", "c");
strings.stream()
.peek(str -> System.out.println(str))
.sorted()
.map(str -> str.toUpperCase())
.forEach(str -> System.out.println(str));
sorted()
操作必须在终端操作开始输出元素之前处理 Stream
的所有元素(因为如果不遍历所有元素就无法对 Stream
进行排序它的元素)。
因此,这导致 peek()
在第一个大写元素被 forEach()
输出之前执行所有元素。
我偶然发现了一个我无法解决的带有流的任务。我不得不修改代码以打印 abcABC
而不是 aAbBcC
.
我明白为什么要这样打印了。
// prints 'a b c' then prints 'A B C'
List<String> strings = List.of("a", "b", "c");
strings.stream()
.peek(str -> System.out.println(str))
.map(str -> str.toUpperCase())
.forEach(str -> System.out.println(str));
感谢任何帮助。
这是一种方法:
List<String> strings = List.of("a", "b", "c");
strings.stream()
.peek(str -> System.out.println(str))
.sorted()
.map(str -> str.toUpperCase())
.forEach(str -> System.out.println(str));
sorted()
操作必须在终端操作开始输出元素之前处理 Stream
的所有元素(因为如果不遍历所有元素就无法对 Stream
进行排序它的元素)。
因此,这导致 peek()
在第一个大写元素被 forEach()
输出之前执行所有元素。