首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA如何在列表中追加.map()的返回值,而不是返回列表的列表

JAVA如何在列表中追加.map()的返回值,而不是返回列表的列表
EN

Stack Overflow用户
提问于 2020-04-28 08:14:12
回答 1查看 91关注 0票数 0

我有一个java代码,类似于

代码语言:javascript
复制
/*Statement A*/
dataList.stream.map(ClassA::mapFunction).collect(Collectors.toList())

mapFunction的定义如下:

代码语言:javascript
复制
List<Entry> mapFunction(DataListItem dataListItem)

因此,上面的stream().map()调用返回List<List<Entry>>

我想要的是返回值应该是list<Entry> (基本上是附加所有返回值),为此,我目前正在做的是:

代码语言:javascript
复制
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>>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-28 08:44:37

flatMap操作,与mapfiltercollect等一样,是您对流执行的操作,它执行以下操作:

您提供了一个lambda,它将流中的每个元素转换为流本身(因此是流的流),然后操作的“输出”是由所有这些流连接在一起的单个流。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61470589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档