Die Bestimmung des kartesischen Produkts von zwei oder mehr Mengen ist eine häufige Aufgabe in der Programmierung. So führen Sie diesen Vorgang mithilfe von Java-Bibliotheken durch.
Rekursiver Ansatz
Für eine beliebige Anzahl von Mengen kann ein rekursiver Ansatz verwendet werden. Die Methode „cartesianProduct“ akzeptiert ein Array von Mengen als Argumente. Es prüft, ob die Anzahl der Sätze gültig ist und fährt mit den folgenden Schritten fort:
Beispielcode:
public static Set<Set<Object>> cartesianProduct(Set<?>... sets) { if (sets.length < 2) throw new IllegalArgumentException("Can't have a product of fewer than two sets (got " + sets.length + ")"); return _cartesianProduct(0, sets); } private static Set<Set<Object>> _cartesianProduct(int index, Set<?>... sets) { Set<Set<Object>> ret = new HashSet<>(); if (index == sets.length) { ret.add(new HashSet<>()); } else { for (Object obj : sets[index]) { for (Set<Object> set : _cartesianProduct(index + 1, sets)) { set.add(obj); ret.add(set); } } } return ret; }
Hinweis: Dieser Ansatz garantiert einen kartesischen Produkt für eine beliebige Anzahl von Sätzen, kann jedoch aufgrund der Einschränkungen von Java keine generischen Typinformationen beibehalten.
Das obige ist der detaillierte Inhalt vonWie berechnet man das kartesische Produkt mehrerer Mengen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!