📅  最后修改于: 2023-12-03 14:42:49.755000             🧑  作者: Mango
Java中的LongStream peek()方法返回一个新的LongStream,它包含与原始LongStream相同的元素,但在提取每个元素之前都会执行给定的操作。因此,该方法能够允许程序员在调用终端操作之前查看元素流。
LongStream.range(1, 10)
.peek(e -> System.out.println("Processing " + e))
.map(e -> e * 2)
.forEach(System.out::println);
上述示例中,使用range()方法创建一个元素为1到9的Long流。然后在这条流上调用peek()方法,将操作 System.out.println("Processing " + e)
应用于每个元素。接下来,调用map()方法将每个元素都乘以2,最后将结果打印到标准输出流中。
输出:
Processing 1
2
Processing 2
4
Processing 3
6
Processing 4
8
Processing 5
10
Processing 6
12
Processing 7
14
Processing 8
16
Processing 9
18
如上所示,peek()操作会在每个元素被传递到下一个操作之前打印“Processing X”的消息。这样可以帮助我们更好地理解流中有哪些元素。
注意:peek()操作不会修改流中的任何元素,它只是提供了一个可见指标,以了解流中元素的状态。