我有一个带有多个字段的对象。字段之一是List<Object2>
。
我想恢复所有Object2项目的所有名称(Object2.getName()
)的列表(或集合,因为我不需要重复的)。
我尝试这样做,如下所示:
getList().stream()
.map(Object::getListObject2)
.collect(Collectors.toSet())
.stream()
.flatMap(List::stream)
.collect(Collectors.toSet());
它返回一个
Set<Object2>
,但不返回Set/List<Object2.getName()>
。另外,我担心流的复杂性。
谢谢。
最佳答案
您无需收集然后重新流式传输。只需调用getName。
这个怎么样 ?
getList().stream()
.map(Object::getListObject2)
.flatMap(List::stream)
.map(Object2::getName)
.collect(Collectors.toSet());