将流列表转换为列表
Posted
技术标签:
【中文标题】将流列表转换为列表【英文标题】:Convert List of Stream to List 【发布时间】:2019-10-21 05:58:29 【问题描述】:我有一个 lambda 表达式,我想在其中创建一个对象列表,但出现错误
List<ClassObject> classObject = obj1.getFileId().stream()
.map(x -> obj1.getCustomObj().stream()
.map(y -> obj1.builder().Id(x).name(y.getName()).value(y.getValue())
.details(obj1.getDetails()).build()))
.collect(Collectors.toList());
错误
Type mismatch: cannot convert from List<Stream<ClassObject>> to List<ClassObject>
我希望 List<ClassObject>
作为 lambda 表达式的返回类型。我怎样才能做到这一点?
【问题讨论】:
***.com/questions/14830313/… 的可能重复项? 不,这不是一个好的副本。答案是 flatmap() 而不是 map。 【参考方案1】:使用平面地图:
List<ClassObject> classObject = obj1.getFileId().stream()
.flatMap(x -> obj1.getCustomObj().stream()
.map(y -> obj1.builder().Id(x).name(y.getName()).value(y.getValue())
.details(obj1.getDetails()).build()))
.collect(Collectors.toList());
【讨论】:
以上是关于将流列表转换为列表的主要内容,如果未能解决你的问题,请参考以下文章