ホームページ >Java >&#&チュートリアル >Javaで複数のリストから可能なすべての一意の組み合わせを生成するにはどうすればよいですか?
Java の複数リスト組み合わせジェネレーター
質問:
可変数のリストが与えられた場合任意の長さで、すべての入力リストにわたる要素の考えられるすべての一意の組み合わせを含む単一のリストを生成します。たとえば、指定されたリスト:
X: [A, B, C] Y: [W, X, Y, Z]
関数は 12 個の組み合わせを生成する必要があります:
[AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]
答え:
この問題では、再帰的アプローチ:
<code class="java">void generatePermutations(List<List<Character>> lists, List<String> result, int depth, String current) { if (depth == lists.size()) { result.add(current); return; } for (int i = 0; i < lists.get(depth).size(); i++) { generatePermutations(lists, result, depth + 1, current + lists.get(depth).get(i)); } }</code>
この関数を使用するには:
<code class="java">List<List<Character>> lists = new ArrayList<>(); lists.add(Arrays.asList('A', 'B', 'C')); lists.add(Arrays.asList('W', 'X', 'Y', 'Z')); List<String> result = new ArrayList<>(); generatePermutations(lists, result, 0, "");</code>
以上がJavaで複数のリストから可能なすべての一意の組み合わせを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。