Heim  >  Artikel  >  Java  >  Wie generiert man in Java alle möglichen eindeutigen Kombinationen aus mehreren Listen?

Wie generiert man in Java alle möglichen eindeutigen Kombinationen aus mehreren Listen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-26 19:57:02307Durchsuche

How to Generate All Possible Unique Combinations from Multiple Lists in Java?

Mehrfachlisten-Kombinationsgenerator in Java

Frage:

Gegeben eine variable Anzahl von Listen Mit beliebiger Länge generieren Sie eine einzelne Liste, die alle möglichen eindeutigen Kombinationen von Elementen in allen Eingabelisten enthält. Zum Beispiel gegebene Listen:

X: [A, B, C] 
Y: [W, X, Y, Z]

Die Funktion sollte 12 Kombinationen ergeben:

[AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]

Antwort:

Dieses Problem erfordert eine rekursiver Ansatz:

<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>

Um diese Funktion zu verwenden:

<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>

Das obige ist der detaillierte Inhalt vonWie generiert man in Java alle möglichen eindeutigen Kombinationen aus mehreren Listen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn