对于不知道所需数量的循环

时间:2018-07-24 21:24:24

标签: java list for-loop arraylist

我想以类似时钟的方式循环/访问一系列列表中元素的所有可能组合,但是直到运行时我才知道会有多少个列表(即我无法对其进行硬编码) 。通常,如果我确实知道将有多少个列表,我会在类似以下的内容中使用嵌套的For循环:

for(int x = 0; x < total1; x++){
    for(int y = 0; y < total2; y++){
        for(int z = 0; z < total3; z++){
            //Handling code
        }
    }
}

最外面的循环代表最后一个List,最里面的循环代表第一个List。但是,由于我不知道将有多少个列表,因此无法使用此方法,因为我不知道要使用多少个循环。互联网上的某些东西据说使用了会反复运行for循环的递归程序,但我不知道这怎么可能达到与上述方法相同的结果。

是否有一种方法可以实现与For循环相同的目的(访问列表中元素的每种组合,从每个列表中获取一个元素),而无需知道需要多少个列表/循环?

编辑: 例如,如果我有3个列表,每个列表包含4个元素:

[1,3,6,5], [0,5,8,2], [9,7,1,6]

然后,我的输出实质上应该是包含所有可能示例的64个列表,例如:

[1,0,9], [3,0,9], [6,0,9], [5,0,9],
[1,5,9], [3,5,9], [6,5,9], [5,5,9],
[1,8,9], [3,8,9], [6,8,9], [5,8,9],
[1,2,9], [3,2,9], [6,2,9], [5,2,9],
[1,0,7], [3,0,7], [6,0,7], [5,0,7] //...etc

希望这会有所帮助!

0 个答案:

没有答案