有 Java 编程相关的问题?

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

交换ArrayListjava的元素

我找到了这个交换代码,但我需要消除递归?是否可以使用ArrayList而不是数组

public class A {

    static ArrayList<int[]> permutations(int[] a) {
        ArrayList<int[]> ret = new ArrayList<int[]>();
        permutation(a, 0, ret);
        return ret;
    }

    public static void permutation(int[] a, int pos, ArrayList<int[]> list) {
        if (a.length - pos == 1)
            list.add(a.clone());

        else
            for (int i = pos; i < a.length; i++) {
                swap(a, pos, i);
                permutation(a, pos + 1, list);
                swap(a, pos, i);
            }
    }

    public static void swap(int[] arr, int pos1, int pos2) {
        int h = arr[pos1];
        arr[pos1] = arr[pos2];
        arr[pos2] = h;
    }

共 (1) 个答案

  1. # 1 楼答案

    如果你的问题是你能用ArrayList交换两个元素吗?那么答案是肯定的:

    Collections.swap(arr, pos1, pos2);