Heim >Java >javaLernprogramm >Wie generiert man in Java alle eindeutigen Kombinationen aus mehreren Listen unterschiedlicher Länge?
So generieren Sie alle Kombinationen aus mehreren Listen
Frage:
Angegeben eine variable Zahl Bestimmen Sie anhand von Listen unterschiedlicher Länge, wie eine einzelne Liste generiert werden soll, die alle eindeutigen Kombinationen von Elementen aus den Eingabelisten enthält.
Zum Beispiel:
Betrachten Sie die folgenden Listen:
X: [A, B, C] Y: [W, X, Y, Z]
Gewünschte Ausgabe:
12 einzigartige Kombinationen:
[AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]
Java-Implementierung:
Rekursion verwenden:
<code class="java">import java.util.List; public class Permutations { public static void main(String[] args) { List<List<Character>> lists = List.of(List.of('A', 'B', 'C'), List.of('W', 'X', 'Y', 'Z')); List<String> result = new ArrayList<>(); generatePermutations(lists, result, 0, ""); System.out.println(result); } private static 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>
Wie es funktioniert:
Diese Funktion verwendet Rekursion, um alle möglichen Kombinationen zu erkunden. Es verwaltet eine aktuelle Zeichenfolge, die die bisherige Teilkombination darstellt, und erhöht die Tiefe, um anzugeben, welche Liste untersucht wird. Der Basisfall tritt ein, wenn alle Listen erschöpft sind. Zu diesem Zeitpunkt wird die aktuelle Teilkombination zur Ergebnisliste hinzugefügt. Andernfalls durchläuft die Funktion die aktuelle Liste und ruft sich selbst rekursiv auf, fügt jedes Zeichen zur aktuellen Kombination hinzu und erhöht die Tiefe.
Beispielverwendung:
<code class="java">Input: lists = [[A, B, C], [W, X, Y, Z]] Output: [AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]</code>
Das obige ist der detaillierte Inhalt vonWie generiert man in Java alle eindeutigen Kombinationen aus mehreren Listen unterschiedlicher Länge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!