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

Patricia Arquette
リリース: 2024-10-26 19:57:02
オリジナル
307 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!