交换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 楼答案
如果你的问题是你能用
ArrayList
交换两个元素吗?那么答案是肯定的: