Iterative Generierung aller Kombinationen aus mehreren Listen mithilfe der Rekursion in Java
Stellen Sie sich ein Szenario vor, in dem Sie mit einer Vielzahl von Listen konfrontiert werden, jedes besitzt eine unbekannte Länge. Ihre Aufgabe besteht darin, eine einzigartige Liste zu erstellen, die alle einzigartigen Kombinationsmöglichkeiten umfasst. Betrachten Sie zur Veranschaulichung die folgenden Listen:
X: [A, B, C] Y: [W, X, Y, Z]
Aus diesen Listen sollten Sie in der Lage sein, 12 Kombinationen zu generieren:
[AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]
Wenn eine zusätzliche dritte Liste mit 3 Elementen eingeführt würde, die Gesamtzahl der Kombinationen würde sich auf 36 erhöhen.
Um diese komplexe Kombinationsgenerierung zu erreichen, erweist sich die Rekursion als leistungsstarkes Werkzeug:
<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>
In diesem sorgfältig ausgearbeiteten rekursiven Algorithmus werden die Parameterlisten dargestellt die Sammlung von Eingabelisten, die durch eine unbestimmte Menge und Länge gekennzeichnet sind. Die Ergebnisliste dient als Aufbewahrungsort aller während des Prozesses generierten Permutationen. Die Parameter Tiefe und Strom erleichtern das Durchlaufen der Eingabelisten bzw. die Konstruktion einzelner Kombinationen.
Der ultimative Aufruf dieser generativen Funktion orchestriert den gesamten Prozess:
<code class="java">generatePermutations(lists, result, 0, "");</code>
Durch die Durch die harmonische Zusammenarbeit von Rekursion und dem Java Collection Framework können Sie mit diesem Algorithmus mühelos jede erdenkliche Kombination aus einem beliebig großen Ensemble von Listen erstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe der Rekursion in Java alle möglichen Kombinationen aus mehreren Listen unbekannter Länge generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!