gpt4 book ai didi

Java 流 "forEach"但不消耗流

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:33:13 25 4
gpt4 key购买 nike

有时在处理流的步骤之间对流中的每个元素做“某事”(例如打印)会很方便,例如用于调试。

一个简单的例子可能看起来像这样,不幸的是这不起作用,因为 forEach 消耗流:

List<String> list = new ArrayList<>();
list.add("one");
list.add("two");
list.add("three");
list.add("four");

List<String> filteredList =
list.stream()
.filter(s -> s.startsWith("t"))
.forEach(System.out::println)
.collect(Collectors.toList());

如何实现?

最佳答案

您正在寻找 peek操作:

This method exists mainly to support debugging, where you want to see the elements as they flow past a certain point in a pipeline

此方法将在 Stream 管道的所有元素被使用时执行给定的操作。因此,它允许使用 peek的元素。

List<String> filteredList = 
list.stream()
.filter(s -> s.startsWith("t"))
.peek(System.out::println)
.collect(Collectors.toList());

关于Java 流 "forEach"但不消耗流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35364792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com