有时在处理Java stream()时,我发现自己需要使用非终端的forEach()来引发副作用,但又不终止处理。
我怀疑我可以使用.map(item-> f(item))之类的方法来执行此操作,其中方法f会产生副作用,并将该项目返回到流中,但这似乎有点曲折。
有标准的处理方式吗?
最佳答案
就在这里。它称为peek()
(例如JavaDoc的示例):
Stream.of("one", "two", "three", "four")
.peek(e -> System.out.println("Original value: " + e))
.filter(e -> e.length() > 3)
.peek(e -> System.out.println("Filtered value: " + e))
.map(String::toUpperCase)
.peek(e -> System.out.println("Mapped value: " + e))
.collect(Collectors.toList());
关于java - 流中的非终端forEach()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40624971/