如何在Java流的foreach中添加map
我以前写过以下内容:如何在Java流的foreach中添加map,java,filter,foreach,java-8,java-stream,Java,Filter,Foreach,Java 8,Java Stream,我以前写过以下内容: events.stream() .map(d -> cli.getItem(d.getValue())) .map(event -> Report.builder() .id(event.getId()) .value(event.getValue())
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,它返回列表,并希望为每个项保留一些逻辑。这意味着我需要创建一个foreach,并将原始的map、filter和foreach方法放在.mapd->cli.getItemd.getValue下,我该如何做呢
谢谢 这是一个用于:
flatMap允许您将流中的每个项目映射到多个项目。这是一个用于:
flatMap允许您将流中的每个项目映射到多个项目。System.out.PrintLString.formatr.value的作用是什么?首先,printlnString.format…可以替换为printf…,其次,如果您没有任何参数进行格式化,您可以使用一个普通的printlnr.value,而不需要调用昂贵的格式化框架。这是另外一件事。实际上,我还有一些其他方法调用和其他事情,但不想分散人们的注意力。但是好的方面System.out.printlnString.formatr.value有什么意义?首先,printlnString.format…可以替换为printf…,其次,如果您没有任何参数进行格式化,您可以使用一个普通的printlnr.value,而不需要调用昂贵的格式化框架。这是另外一件事。实际上,我还有一些其他方法调用和其他事情,但不想分散人们的注意力。但这一点很好
events.stream()
.flatMap(d -> cli.getItems(d.getValue()).stream())
// everything below stays the same