둘 이상의 집합의 데카르트 곱을 결정하는 것은 프로그래밍의 일반적인 작업입니다. Java 라이브러리를 사용하여 이 작업을 수행하는 방법은 다음과 같습니다.
재귀적 접근 방식
임의의 세트 수에 대해 재귀적 접근 방식을 사용할 수 있습니다. CartesianProduct 메서드는 집합 배열을 인수로 받아들입니다. 세트 수가 유효한지 확인하고 다음 단계를 진행합니다.
샘플 코드:
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; }
참고: 이 접근 방식은 여러 세트에 대한 데카르트 곱이지만 Java의 제한으로 인해 일반 유형 정보를 보존할 수 없습니다.
위 내용은 Java에서 여러 세트의 데카르트 곱을 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!