【发布时间】:2020-04-28 00:14:12
【问题描述】:
我有一个类似的 java 代码
/*Statement A*/
dataList.stream.map(ClassA::mapFunction).collect(Collectors.toList())
关键是mapFunction有如下定义:
List<Entry> mapFunction(DataListItem dataListItem)
因此上面的 stream().map() 调用返回List<List<Entry>>
我想要的是返回值应该是list<Entry>(基本上是附加所有返回值),为此我目前正在做的是:
final List<Entry> entryList = new ArrayList<>();
dataList.stream.map(dataListItem -> entryList.addAll(ClassA.mapFunction(dataListItem))
.collect(Collectors.toList());
是否有一种干净的方法来附加 mapFunction 返回值,使得语句 A 的结果只是 List<Entry> 而不是 List<List<Entry>>。
【问题讨论】:
-
这样使用平面地图
dataList.stream.map(ClassA::mapFunction).flatMap(List::stream).collect(Collectors.toList())
标签: java collections java-stream