Java의 재귀를 사용하여 여러 목록에서 모든 조합의 반복 생성
일련의 목록에 직면하는 시나리오를 상상해 보세요. 각각은 공개되지 않은 길이를 가지고 있습니다. 귀하의 임무는 모든 고유한 조합 가능성을 통합하는 단일 목록을 생성하는 것입니다. 설명을 위해 다음 목록을 고려하십시오.
X: [A, B, C] Y: [W, X, Y, Z]
이 목록에서 12개의 조합을 생성할 수 있습니다.
[AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]
3개 요소로 구성된 세 번째 추가 목록이 도입된 경우, 총 조합 수는 36개로 확장됩니다.
이 복잡한 조합 생성을 달성하려면 재귀가 강력한 방법으로 등장합니다. 도구:
<code class="java">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>
세심하게 제작된 이 재귀 알고리즘에서 매개변수 목록은 불확실한 양과 길이를 특징으로 하는 입력 목록 모음을 나타냅니다. 결과 목록은 프로세스 중에 생성된 모든 순열의 저장소 역할을 합니다. 매개변수 깊이와 전류는 각각 입력 목록의 순회와 개별 조합의 구성을 용이하게 합니다.
이 생성 함수의 궁극적인 호출은 전체 프로세스를 조정합니다.
<code class="java">generatePermutations(lists, result, 0, "");</code>
재귀와 Java 컬렉션 프레임워크의 조화로운 협력을 통해 이 알고리즘을 사용하면 임의의 대규모 앙상블에서 상상할 수 있는 모든 조합을 손쉽게 생성할 수 있습니다. 목록입니다.
위 내용은 Java에서 재귀를 사용하여 길이를 알 수 없는 여러 목록에서 가능한 모든 조합을 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!