首页 > 解决方案 > 在不知道所需数量的情况下进行循环

问题描述

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

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

其中最外面的循环代表最后一个列表,最里面的代表第一个。但是,因为我不知道会有多少个列表,所以我不能使用这种方法,因为我不知道要使用多少个循环。网上有些东西说使用递归程序会反复运行for-loops,但我不明白这怎么能达到与上述方法相同的结果。

有没有办法在不知道需要多少个列表/循环的情况下完成与 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

希望这可以帮助!

标签: javalistfor-looparraylist

解决方案


推荐阅读