ホームページ >Java >&#&チュートリアル >Javaで複数のリストから可能なすべての一意の組み合わせを生成するにはどうすればよいですか?

Javaで複数のリストから可能なすべての一意の組み合わせを生成するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-26 19:57:02392ブラウズ

How to Generate All Possible Unique Combinations from Multiple Lists in 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。