如何将map添加到Java流的foreach中



我之前写过以下内容:

events.stream()
.map(d -> cli.getItem(d.getValue()))
.map(event -> Report.builder()
.id(event.getId())
.value(event.getValue())
.build())
.filter(r -> !excludesSet.contains(r.value))
.forEach(r -> {
System.out.println(String.format(r.value);
});

getItem在这里返回Item,我刚刚将getItem更新为getItems,后者返回List<Item>,并且希望为每个项目保留一些逻辑。这意味着我需要创建一个foreach,并将原始映射、过滤器和forEach方法放在.map(d -> cli.getItem(d.getValue()))下,我该怎么做?

谢谢!

这是flatMap:的一个用例

events.stream()
.flatMap(d -> cli.getItems(d.getValue()).stream())
// everything below stays the same

flatMap允许您将流中的每个项目映射到多个项目。

最新更新