递归函数以获取Java中所有可能的组合
我试图找到所有可能的组合,专家的技能在一个特定的项目与递归函数。但是我得到了错误的答案 我有每个项目的专家名单。我可以通过以下方式访问每项技能的专家列表:递归函数以获取Java中所有可能的组合,java,loops,recursion,Java,Loops,Recursion,我试图找到所有可能的组合,专家的技能在一个特定的项目与递归函数。但是我得到了错误的答案 我有每个项目的专家名单。我可以通过以下方式访问每项技能的专家列表: ExpertForSkill currentExpertList = currentProjectTeam.expertForSkill.get(skillNum); 我的递归函数是 public static List<ProjectAndTeam> recursiveExpertFinder( int
ExpertForSkill currentExpertList = currentProjectTeam.expertForSkill.get(skillNum);
我的递归函数是
public static List<ProjectAndTeam> recursiveExpertFinder(
int skillNum,
ProjectAndTeam currentProjectTeam,
List<ProjectAndTeam> projectAndTeams) {
if (skillNum == currentProjectTeam.project.skills.size()) {
return projectAndTeams;
} else {
ExpertForSkill currentExpertList = currentProjectTeam.expertForSkill.get(skillNum);
ExpertForSkill newExprtForSkill = new ExpertForSkill();
ProjectAndTeam newProjectAndTeam = new ProjectAndTeam();
newProjectAndTeam.project = currentProjectTeam.project;
for (Expert expert : currentExpertList.expertList) {
newExprtForSkill.skill = currentExpertList.skill;
newExprtForSkill.expertList.add(expert);
List<ExpertForSkill> newExpertList = new ArrayList<>();
newExpertList.add(newExprtForSkill);
newProjectAndTeam.expertForSkill = newExpertList;
projectAndTeams.add(newProjectAndTeam);
recursiveExpertFinder(skillNum + 1, currentProjectTeam, projectAndTeams);
}
return projectAndTeams;
}
}
我希望输出像这样
Skill 1:A
Skill 2:B
Skill 1:B
Skill 2:B
但是我得到的输出和输入是一样的
Skill 1 : <A,B>
Skill 2 : <B>
技能1:
技能2:
您得到的正确答案是什么,错误答案是什么?我已经用预期输出和当前输出编辑了我的问题。这不是递归函数的作用,它的终止条件是skillNum==currentProjectTeam.project.skills.size()
。所以,如果技能大小为2,则结果输出将包含2项,以此类推。
Skill 1:A
Skill 2:B
Skill 1:B
Skill 2:B
Skill 1 : <A,B>
Skill 2 : <B>