我有一个对象列表A,A有一个名为Address的属性,它有一个街道名-- streetName
从对象A的列表中,我想对所有的街道名称进行getList。从流看来,一个级别的集合是可行的,但是如何使用一行代码获得嵌套字符串。
因此,为了从对象A获取地址列表,我可以这样做:
listOfObjectsA.stream().map(a::getAddress).collect(Collectors.toList());我的最终目标是获得街道名称列表,因此我无法使用lambdas找到第二级集合。
我找不到我要找的确切例子。有人能帮我解决这个问题吗。
发布于 2016-10-16 20:56:13
您可以简单地链接另一个map操作以获取街道名称:
listOfObjectsA
.stream()
.map(a::getAddress)
.map(a -> a.getStreetName()) // or a::getStreetName
.collect(Collectors.toList());第一个map将对象转换为Address对象,下一个map将这些Address对象转换为street names,然后由收集器收集。
流操作形成一个管道,因此在终端操作(在本例中是collect操作)之前,您可以根据需要进行任意多的操作。
https://stackoverflow.com/questions/40075305
复制相似问题