作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个对象列表 A,A 有一个名为 Address 的属性,它有一个街道名称 -- streetName
我想从对象列表 A 中获取所有街道名称的列表。一级集合似乎从流中非常可行,但我如何使用一行代码获取嵌套字符串。
因此,为了从对象 A 获取地址列表,我可以这样做:
listOfObjectsA.stream().map(a::getAddress).collect(Collectors.toList());
我的最终目标是获取街道名称列表,因此我无法使用 lambda 算出二级集合。
我找不到我正在寻找的准确示例。有人可以帮我解决这个问题吗?
最佳答案
您可以简单地链接另一个 map
操作来获取街道名称:
listOfObjectsA
.stream()
.map(a::getAddress)
.map(a -> a.getStreetName()) // or a::getStreetName
.collect(Collectors.toList());
第一个 map
将您的对象转换为 Address
对象,下一个 map
获取那些 Address
对象并进行转换它们变成街道名称
,然后由收集器收集。
流操作形成一个管道,因此在终端操作(在本例中为 collect
操作)之前,您可以根据需要进行任意数量的操作。
关于java - 如何在 Java 8 流上运行嵌套收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40075305/
我是一名优秀的程序员,十分优秀!