java - 在不知道所需数量的情况下进行循环
问题描述
我想以类似时钟的方式循环/访问一系列列表中元素的所有可能组合,但我不知道在运行时之前会有多少个列表(即我无法对其进行硬编码)。通常,如果我确实知道会有多少个列表,我会使用嵌套的 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
希望这可以帮助!
解决方案
推荐阅读
- azure-devops - YAML 管道与默认 Azure 管道中的输出不一致
- algorithmic-trading - crpto 交易的技术分析 (MACD)
- python - ValueError:传递值的形状为 (37679, 43),索引暗示 (37679, 41)
- javascript - 有谁知道 Chrome 如何监控 javascript 中 DOM 元素的更改并在 GUI 中复制它们的实现细节?
- dax - 使用 DAX 计算表列的不同值加上两个静态值
- javascript - Laravel mix 不适用于 thread-loader + ts-loader
- ffmpeg - 如何在ffmpeg中汇总两个流中的音频
- python - 如何计算火花 RDD 中出现的次数并将其作为字典返回?
- python - 在 Unix 上如何可靠地设置宽度 `wget` 用于输出其进度条?
- google-apps-script - 如何在我的电子表格中生成指向每个工作表的 URL 链接