将嵌套for循环重构为Java 8流[英] Refactoring nested for loop into Java 8 stream

问题描述

我有以下 for 循环:

    List<Map> mapList = new ArrayList<>();
    for (Resource resource : getResources()) {
        for (Method method : resource.getMethods()) {
            mapList.add(getMap(resource,method));
        }
    }
    return mapList;

如何将此嵌套循环重构为 Java 8 流?

推荐答案

你可以使用flatMap获取所有Resources中所有Methods的所有Maps:

List<Map> mapList = 
    getResources().stream()
                  .flatMap(r->r.getMethods().stream().map(m->getMap(r,m)))
                  .collect(Collectors.toList());

本文地址:https://www.itbaoku.cn/post/978371.html