x個のリストがあり、各リストには任意の数の要素があります。各要素は単語です。各リストから 1 つの要素を取得し、各リストから 1 つの単語を含む新しいリストを作成したいと思います。すべてのリストを保存したいと思います。終了したら、単語を追加する可能性ごとに 1 つのリストを作成します。たとえば、4 つのリストがあるとします。
リスト 0: いい
ですね リスト 1:素敵ですね
リスト 2: 素晴らしい
リスト 3: どうやってこれをやったのですか
各リストから要素を取得し、それらを一緒に追加する 1 つの方法は次のとおりです。
新しいリスト 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 + " ");
}
}
また、すべての結果が 1 つのリストに表示されることもわかっています。しかし、私は何かを機能させてから改善するためにこれを行っているだけです。コードを実行すると、最後のリストから単語が 1 つだけ取得されます。