有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案