首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java 8流上运行嵌套收集?

如何在java 8流上运行嵌套收集?
EN

Stack Overflow用户
提问于 2016-10-16 20:50:04
回答 1查看 4.5K关注 0票数 10

我有一个对象列表A,A有一个名为Address的属性,它有一个街道名-- streetName

从对象A的列表中,我想对所有的街道名称进行getList。从流看来,一个级别的集合是可行的,但是如何使用一行代码获得嵌套字符串。

因此,为了从对象A获取地址列表,我可以这样做:

代码语言:javascript
复制
listOfObjectsA.stream().map(a::getAddress).collect(Collectors.toList());

我的最终目标是获得街道名称列表,因此我无法使用lambdas找到第二级集合。

我找不到我要找的确切例子。有人能帮我解决这个问题吗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-16 20:56:13

您可以简单地链接另一个map操作以获取街道名称:

代码语言:javascript
复制
listOfObjectsA
.stream()
.map(a::getAddress)
.map(a -> a.getStreetName())  // or a::getStreetName
.collect(Collectors.toList());

第一个map将对象转换为Address对象,下一个map将这些Address对象转换为street names,然后由收集器收集。

流操作形成一个管道,因此在终端操作(在本例中是collect操作)之前,您可以根据需要进行任意多的操作。

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

https://stackoverflow.com/questions/40075305

复制
相关文章

相似问题

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