Java 存储由递归方法生成的数组

Java 存储由递归方法生成的数组,java,arrays,recursion,Java,Arrays,Recursion,如何保存以下方法生成的所有数组 static void permute(java.util.List<Character> arr, int k) { for (int i = k; i < arr.size(); i++) { java.util.Collections.swap(arr, i, k); permute(arr, k + 1); java.util.Collections.swap(arr, k, i);

如何保存以下方法生成的所有数组

static void permute(java.util.List<Character> arr, int k) {
    for (int i = k; i < arr.size(); i++) {
        java.util.Collections.swap(arr, i, k);
        permute(arr, k + 1);
        java.util.Collections.swap(arr, k, i);
    }
    if (k == arr.size() - 1) {
        System.out.println(java.util.Arrays.toString(arr.toArray()));
    }
}
static void permute(java.util.List arr,int k){
对于(int i=k;i
您可以将
结果
列表作为参数传递给递归方法以保存结果

static void permute(List<Character> arr, int k,List<List<Character>> results) {
 for (int i = k; i < arr.size(); i++) {
    java.util.Collections.swap(arr, i, k);
    permute(arr, k + 1, results);
    java.util.Collections.swap(arr, k, i);
 }
 if (k == arr.size() - 1) {
   results.add(new ArrayList<>(arr));
 }
}
static void permute(列表arr、int k、列表结果){
对于(int i=k;i