Java 遍历目录和无限子目录

Java 遍历目录和无限子目录,java,iteration,Java,Iteration,我有一个程序,你可以添加一个完整的主题数组,然后在每个主题中添加一个完整的主题数组,以此类推。我正在为上述程序制作一个加载程序,加载预先制作的主题地图。我有一个基础科目,两个子科目,每个子科目中有一个科目。我的代码适用于1、1.1、1.1.1、1.2,但不适用于1.2.1。你能看一下吗 private static Subject search(String title, ArrayList<Subject> subList) { for (Subject sub : su

我有一个程序,你可以添加一个完整的主题数组,然后在每个主题中添加一个完整的主题数组,以此类推。我正在为上述程序制作一个加载程序,加载预先制作的主题地图。我有一个基础科目,两个子科目,每个子科目中有一个科目。我的代码适用于1、1.1、1.1.1、1.2,但不适用于1.2.1。你能看一下吗

private static Subject search(String title, ArrayList<Subject> subList) {

    for (Subject sub : subList) {

        if (sub.getTitle().equals(title)) {
            return sub;
        } else {
            return search(title, sub.getSubs());
        }
    }

    return null;
}
私有静态主题搜索(字符串标题,ArrayList子列表){
for(主题子列表:子列表){
if(sub.getTitle().equals(title)){
返回子节点;
}否则{
返回搜索(title,sub.getSubs());
}
}
返回null;
}

据我所知,没有什么错。

一个明显的问题是,您的代码总是从if语句返回,所以您只查看子列表的第一个元素。只需将
返回搜索(title,sub.getSubs())
更改为
搜索(title,sub.getSubs())
现在它无法添加1.1.1和1.2.1Try设置
Subject s=search(title,sub.getSubs())
和do
如果(s!=null)返回s在它之后。