作者:我爱麦兜李 | 来源:互联网 | 2023-05-18 15:50
这个问题很好理解但是如何使用代码全部列出这个比较麻烦,下面是列出相关的代码:importjava.util.Arrays;importjava.util.LinkedList
这个问题很好理解 但是如何使用代码全部列出这个比较麻烦,下面是列出相关的代码:
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
public class learn {
public static void main(String args[]){
//先声明一个String 数组
String [] array = new String []{"1","2","3","4"};
//然后将String数组转换成list 然后调用打印数组合
getarray(Arrays.asList(array),"");
}
/**
* 创建一个方法打印出数的组合
* lsit 数组列表
* str 每次要打印的组合数
*/
public static void getarray(List list ,String str){
//先打印出数的组合数
System.out.println(str);
//遍历list列表
for(int i=0;i//将每次移除后递归的list列表重新初始化
List temp = new LinkedList(list);
//递归调用 这里注意temp的变化
getarray(temp, str+temp.remove(i));
}
}
}
这里运用到了多次的递归:
1.要注意到变量temp的变化以及i的变化 这是重点