如何实现这种java不确定多层循环嵌套

public void test2() {
List list1=new ArrayList<>();
list1.add("0");
list1.add("1");
List list2=new ArrayList<>();
list2.add("0");
list2.add("1");
List list3=new ArrayList<>();
list3.add("0");
list3.add("1");
List list4=new ArrayList<>();
list4.add("0");
list4.add("1");
for (int i=0;i<list1.size();i++){
for(int j=0;j<list2.size();j++){
for (int k=0;k<list3.size();k++){
for(int l=0;l<list4.size();l++){
System.out.println(list1.get(i)+list2.get(j)+list3.get(k)+list4.get(l));
}
}
}
}

}



运行结果:
0000

0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

这个是最终叫老板写的,能达到多层嵌套for循环

public List testMethod(List> list, String str, int i,List result) {
List l = list.get(i);
for (String string : l) {
String str2 = str + string;
if (i != list.size() - 1) {
int j = i + 1;
testMethod(list, str2, j, result);
} else {
result.add(str2);
}
}
return result;
}


System.out.println(list1.get(i)+list2.get(j)+list3.get(k)+list4.get(l));

你想怎么运算呀? 我没看你的思路

采用多片相连输入代码 就能解决

#include

void main()

{

    int i,j;  
    char a[5]="

$";

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%c",a[j]);

printf("\n");

}

}</span>  

for(i=0;i<5;i++)

{

for(j=0;j<=i;j++)

printf("%c",a[j]);

printf("\n");

}

楼上的朋友,人家问的是Java,没问C语言哦

public void test2() {
List list1=new ArrayList<>();
list1.add("0");
list1.add("1");
List list2=new ArrayList<>();
list2.add("0");
list2.add("1");
List list3=new ArrayList<>();
list3.add("0");
list3.add("1");
List list4=new ArrayList<>();
list4.add("0");
list4.add("1");
for (int i=0;i<list1.size();i++){
for(int j=0;j<list2.size();j++){
for (int k=0;k<list3.size();k++){
for(int l=0;l<list4.size();l++){
System.out.println(list1.get(i)+list2.get(j)+list3.get(k)+list4.get(l));
}
}
}
}

先不换行
在第三层循环里在加一行System.out.println( );

类似的是不是可以用 回归函数来解决呢?

使用递归函数实现,首先每一层递归有一个for循环,main方法中也有一个,每一个for循环代表的二进制数的一位,然后设置二机制位数的长度。
定义一个长度二进制位数长度的数组存储i即0或1, int tmp = new len[Bin.length]; turn = 0;
main中的循环 for(int i = 0; i < 2; i++){tmp[turn] = i;next(Bin.length, turn+1, tmp); }
private static void next(int len, int trun, int[] tmp){if(turn == len){输出二进制数并且return}else{for(int i = 0; i < 2; i++){tmp[turn]=i;next(len, turn+1, tmp)}}}
递归方法和参数就是上面的,可能有些偏差 思路是对的

二叉树的循环遍历方法,Java实现。利用栈和arraylist

你是不是想实现:生成N位长度所有二进制字符串啊

如果是的话 我写了个代码可以给你参考下
import java.util.Scanner;
public class Main {
static int a[];
public static void main(String []args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt;
a=new int[n+1];
new Main().test(n);
}
public void test(int n){
if(n<1){
for(int i=0;i<a.length-1;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}else{
a[n-1]=0;
test(n-1);
a[n-1]=1;
test(n-1);
}
}
}


楼主,boss让你写递归函数?你想表达的是什么?