java使用递归输出ArrayList的置换
我正在尝试排列ArrayList中的项。我没有得到正确的输出。我不知道问题是什么,我相信它在allPermutations方法的“else”循环中。该列表添加所有字符串,直到输入为-1
。抱歉,如果这是一个典型的问题,我在问之前试着看看这里,但找不到任何帮助
这是我的代码:
public static void allPermutations(ArrayList<String> permList,
ArrayList<String> nameList) {
// base case
// nameList is empty after performing all permutations
if (nameList.size() == 0) {
for (int i = 0; i < permList.size(); ++i) {
for (int j = 0; j < permList.size(); ++j) {
System.out.print(permList.get(i) + " ");
}
System.out.println();
}
} else {
for (int i = 0; i < nameList.size(); ++i) {
ArrayList<String> tempPerm = new ArrayList<>(permList);
String name = nameList.get(i);
// remove from nameList and add to new perm
nameList.remove(i);
tempPerm.add(name);
allPermutations(tempPerm, nameList);
}
}
}
输入是:
Julia Lucas Mia -1
输出应该是:
Julia Lucas Mia
Julia Mia Lucas
Lucas Julia Mia
Lucas Mia Julia
Mia Julia Lucas
Mia Lucas Julia
但我的是:
Julia Julia Julia
Lucas Lucas Lucas
Mia Mia Mia
共 (0) 个答案