我有一个对象列表A,A有一个名为Address的属性,它有一个街道名称 - streetName
从对象列表中我想要获取所有街道名称的列表。一个级别的集合似乎可以从流中完成,但如何使用一行代码获得嵌套的String。
因此,为了从对象A获取地址列表,我可以这样做:
listOfObjectsA.stream().map(a::getAddress).collect(Collectors.toList());
我的最终目标是获取街道名称列表,因此我无法使用lambdas找出二级集合。
我无法找到我想要的精确示例。有人可以帮我这个。
答案 0 :(得分:6)
您可以简单地链接另一个map
操作以获取街道名称:
listOfObjectsA
.stream()
.map(a::getAddress)
.map(a -> a.getStreetName()) // or a::getStreetName
.collect(Collectors.toList());
第一个map
将您的对象转换为Address
个对象,下一个map
将Address
个对象转换为street names
,然后将其转换为collect
收藏家。
流操作形成一个管道,因此您可以在终端操作之前拥有所需的操作(在本例中为m.redraw.strategy("all");
操作)。