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

yzxexxkh  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(405)

我之前写过:

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` 并将原始Map、过滤器和foreach方法放入其中 `.map(d -> cli.getItem(d.getValue()))` ,我该怎么做?
谢谢!
zd287kbt

zd287kbt1#

这是一个 flatMap :

events.stream()
    .flatMap(d -> cli.getItems(d.getValue()).stream())
    // everything below stays the same
``` `flatMap` 允许您将流中的每个项Map到多个项。

相关问题