我有这样的课程
public class Example {
private List<Integer> ids;
public getIds() {
return this.ids;
}
}
如果我有一个像这样的此类的对象列表
List<Example> examples;
如何将所有示例的 id 列表映射到一个列表中? 我尝试过这样的:
List<Integer> concat = examples.stream().map(Example::getIds).collect(Collectors.toList());
但出现错误
Collectors.toList()
使用 Java 8 流 api 实现此目的的正确方法是什么?
使用
flatMap
:
List<Integer> concat = examples.stream()
.flatMap(e -> e.getIds().stream())
.collect(Collectors.toList());
另一种解决方案是使用方法引用表达式而不是 lambda 表达式:
List<Integer> concat = examples.stream()
.map(Example::getIds)
.flatMap(List::stream)
.collect(Collectors.toList());
使用流和地图:-
List<Integer> integerList = productsList.stream().map(x -> x.getId()).collect(Collectors.toList());
}