Ich habe mir viele verschiedene Beiträge über Permutationen in Java angesehen, aber keiner davon hat meine Anforderungen erfüllt, also habe ich beschlossen, einen Beitrag zu verfassen.
Also ich habe 2 List
, und ich muss alle Permutationspaare generieren, ohne Duplikate, wobei ein Element des Paares in der ersten Liste und das zweite in der zweiten Liste liegt.
Zum Beispiel, wenn ich Folgendes habe:
List l1 = Arrays.asList(new Integer[] {1, 2, 3});
List l1 = Arrays.asList(new Integer[] {2, 3, 4});
Dann möchte ich als Ausgabe:
(1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4)
Beachten Sie, dass (3, 2) hier nicht auftaucht, da ich bereits (2, 3) habe.
Ich konnte keine Bibliothek finden, die auch nur annähernd etwas Ähnliches tut, ich habe gesehen, dass guava
etwas Ähnliches mit Permutations
hatte, aber es scheint kürzlich eingestellt worden zu sein oder so.
Außerdem möchte ich die Liste nicht im Speicher speichern müssen, da sie recht groß sein kann, ich muss nur nacheinander durch die Paare iterieren, also versuche ich Wege zu finden, sie on the fly zu generieren. Ich dachte daran, ein Iterable
zu implementieren, aber ich kann einfach nichts schreiben, das effizient aussieht.
Wenn Sie Bibliotheken kennen, die bereits solche Dinge tun, wäre das auch sehr hilfreich!