迭代可能无限量的嵌套ArrayLists

时间:2017-12-30 05:39:25

标签: java list

如果我的班级有一个" sub"类,即同一个类的实例,这可以无限次地嵌套多次,有没有办法可以遍历树中的每个列表?

public class Region {

    List<Region> subRegions = new ArrayList<Region>();

}

一个地区可能有许多次区域,一个次区域可能有许多次区域,依此类推。

2 个答案:

答案 0 :(得分:1)

可以使用Recursion完成此操作。

示例

让我们为您的区域添加一个名称,并使用递归方法以递归方式打印所有名称。

public class Region {
    String name;
    List<Region> subRegions = new ArrayList<Region>();

    void printAll() {
        System.out.println(name);
        for (subRegion : subRegions) {
            subRegion.printAll(); // <-- this is recursive call
        }
    }
}

答案 1 :(得分:1)

您可以创建recursive功能

public void loopThrough(List<Region> regions) {
    for(Region region : regions) {
        if(region.hasSubRegion()) { 
            loopThrough(region.getSubRegions());
        }
    }
}