java - 这是递归吗?它会起作用吗?

标签 java recursion

我创建了一个我认为是递归的方法。

    public AssaultTeam getTeam(String teamName) {
        for(AssaultTeam team : teams){
            if(team.getName().equals(teamName)){
                return team;
            }
        }
        AssaultTeam newTeam = new AssaultTeam(teamName);
        teams.add(newTeam);
        return getTeam(teamName);
    }

'teams' 是 AssaultTeam 的 ArrayList

我以前从未使用过递归,我不确定这个方法是否有效。

最佳答案

是的,这就是递归,递归是指调用方法本身,并且您在此方法的末尾通过代码 return getTeam(teamNames);

是的,它会起作用,但有点奇怪,你实际上不需要这个解决方案的递归

public AssaultTeam getTeam(String teamName) {
        //iterate throught the teams list - OK
        for(AssaultTeam team : teams){
            if(team.getName().equals(teamName)){
                //if found - OK
                return team;
            }
        }
        AssaultTeam newTeam = new AssaultTeam(teamName);
        teams.add(newTeam);
        //call the getTeam, which will cause another iteration to find the item - NOT GOOD
        //return getTeam(teamName);
        //just return item you just created
        return newTeam;
    }

关于java - 这是递归吗?它会起作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17054327/

相关文章:

java - 多个 JSlider 激活和停用 - 共享值

尽管 pom 中包含了所有内容,Java 仍找不到 ResteasyClient

javascript - 为什么 ES6 中的这个函数组合(带有尾递归)返回未定义,但累加器返回正确的结果?

c++ - 自然数的集合论定义(递归)

java - 来自不同网络的 Akka 远程 Actor

java - 解析用户搜索

java - Camel Spring JavaConfig Maven-Camel-Plugin 没有任何 xml

algorithm - 分析具有递归 T(n) = T(n - 1) + T(n - 2) + c 的算法?

python - 产量值不会在递归中返回

arrays - 快速排序分区 Python