두 개의 자바 List<String>
개체가 있고 세 번째 List<String>
결과 개체에 처음 두 개체의 모든 가능한 조합을 추가해야합니다. 마찬가지로 : Java, List에 중첩 된 반복자를 올바르게 구현하는 방법은 무엇입니까?
long combinations = list1.size() * list2.size()
List<String> list1 = getList1();
List<String> list2 = getList2();
List<String> result = new ArrayList<String>();
for(String value1 : list1) {
for(String value2 : list2) {
result.add(value1 + value2);
}
}
문제는이 신속하고 더러운 기능은 기하 급수적으로 목록이 자랄 때 느려지이다 또는 사용할 수있는 프레임 워크는 무엇입니까?
목록에 중복이 많으면 더 잘 수행 할 수 있습니다. 각'List'의 모든 요소를'Set'에 삽입하고 같은 코드를 반복하면됩니다. 이 방법은 중복이 일반적이지 않은 경우 현재 방법보다 약간 나을 것입니다. 모든 조합을 찾으려면 최소한 고유 조합의 수만큼의 시간 복잡성을 지출해야합니다. – nhahtdh
이 시나리오에는 중복이 없습니다. – Mark
이 방법이 가장 직설적이라고 생각합니다. 2 목록에 중복이 없으면 수행 할 수있는 유일한 작업은 동일한 조합을 다시 계산하지 않는 것입니다. 그러나 어쨌든 그렇게 할 생각은 없습니다. – nhahtdh