我将有 x 个列表,每个列表将有任意数量的元素。每个元素都是一个词。我想从每个列表中取出一个元素并构建一个新列表,其中包含每个列表中的一个单词。我想存储每个列表,当我完成后,我将有一个列表,用于添加单词的每种可能性。假设我们有 4 个列表,例如:
清单 0:很好
清单 1:你看起来不错
清单 2:很棒
清单 3:你是怎么做到的
从每个列表中获取元素并将它们添加在一起的一种方法是:
新清单 0:那你真棒
或者
新名单1:你真棒吗?
如何构建适用于具有任意数量元素的任意数量列表的递归算法?最好我想用Java解决这个问题。
这是我到目前为止所做的(我还没有使用计数器和长度,但我打算用它来只得到有趣的组合):
void everyPossibleWay(HashMap<Integer, ArrayList<String>> table, ArrayList<String> everyWay, int x, int y, int length, int counter) {
if (table.get(x) != null) {
if (y < table.get(x).size()) {
everyWay.add(table.get(x).get(y));
everyPossibleWay(table, everyWay, 0, y + 1, length, counter + 1);
everyPossibleWay(table, everyWay, x + 1, y, length, counter);
}
}
else {
for (String s : everyWay)
System.out.println(s + " ");
}
}
我也知道我会在一个列表中获得所有结果。但我这样做只是为了让一些东西发挥作用,然后改进。当我运行代码时,我只从最后一个列表中得到一个单词。