我有以下for循环:
List<Map> mapList = new ArrayList<>();
for (Resource resource : getResources()) {
for (Method method : resource.getMethods()) {
mapList.add(getMap(resource,method));
}
}
return mapList;
我如何将这个嵌套循环重构为Java 8流?
答案 0 :(得分:11)
您可以使用flatMap
获取所有Map
的所有Method
的所有Resource
:
List<Map> mapList =
getResources().stream()
.flatMap(r->r.getMethods().stream().map(m->getMap(r,m)))
.collect(Collectors.toList());
Java stream Map 功能用于将对象从一种形式映射到相同或不同类型的其他形式。
Java stream flatmap 函数用于映射嵌套对象。
有关详细信息,请访问Java 8 stream flat map