【发布时间】:2020-12-23 05:45:15
【问题描述】:
我之前写过以下内容:
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())) 下,我该怎么做?
谢谢!
【问题讨论】:
-
System.out.println(String.format(r.value))的意义何在?首先,println(String.format(…))可以替换为printf(…),其次,如果您没有任何格式化参数,则可以使用普通的println(r.value),而无需调用昂贵的格式化框架。 -
这实际上是另外一回事,我还有一些其他的方法调用和东西,但不想分散人们的注意力。但好点
标签: java filter foreach java-8 java-stream