我的hashmap看起来像这样:
Map<String, ImageRecipeMap> contentIdToImageIdsMap = new HashMap<>();
我的ImageRecipeMap对象如下所示:
public class ImageRecipeMap {
private ContentType contentType;
private List<String> imageIds;
public List<String> getImageIds() {
return imageIds;
}
public void setImageIds(List<String> imageIds) {
this.imageIds = imageIds;
}
...
}
我想获取imageIds的所有列表,并使用java 8流创建一个完整的imageIds列表。这是我到目前为止所做的,但我的收集似乎有一个编译错误:
List<String> total = contentIdToImageIdsMap.values().stream()
.map(value -> value.getImageIds())
.collect(Collectors.toList());
答案 0 :(得分:4)
您的解决方案返回List<List<String>>
。使用.flatMap()
将它们压扁就可以了。
List<String> total = contentIdToImageIdsMap.values().stream()
.flatMap(value -> value.getImageIds().stream())
.collect(Collectors.toList());
.flatMap()
将Stream<List<String>>
更改为Stream<String>
。