Heim > Java > javaLernprogramm > Hauptteil

Wie generiert man in Java alle eindeutigen Kombinationen aus mehreren Listen unterschiedlicher Länge?

Barbara Streisand
Freigeben: 2024-10-27 13:34:29
Original
269 Leute haben es durchsucht

How to Generate All Unique Combinations from Multiple Lists of Varying Lengths in Java?

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]
Nach dem Login kopieren

Gewünschte Ausgabe:

12 einzigartige Kombinationen:

[AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!