我有这样的课
public class Example {
private List<Integer> ids;
public getIds() {
return this.ids;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我有这样的类的对象列表
List<Example> examples;
Run Code Online (Sandbox Code Playgroud)
我怎样才能将所有示例的id列表映射到一个列表中?我试过这样的:
List<Integer> concat = examples.stream().map(Example::getIds).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
但得到一个错误 Collectors.toList()
使用Java 8 stream api获得此功能的正确方法是什么?
And*_*ner 26
用途flatMap:
List<Integer> concat = examples.stream()
.flatMap(e -> e.getIds().stream())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
通过使用方法引用表达式而不是lambda表达式的另一种解决方案:
List<Integer> concat = examples.stream()
.map(Example::getIds)
.flatMap(List::stream)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19689 次 |
| 最近记录: |