문자 배열 characterArray = {a, b, c, d}를 고려하십시오. 가능한 모든 요소 조합을 세트로 포함하는 목록을 만들고 싶습니다. 예를 들면
Set 1 ={}
Set 2 = {a}
Set 3 = {b}
Set 4 = {c}
Set 5 = {a,b}
Set 6 ={a,c}
......
......
Set N = {a,b,c,d}
위의 가능한 모든 조합 조합을 생성 한 후. 위의 생성 된 모든 집합을 목록 (목록)에 추가하고 싶습니다.
아래는 작성된 샘플 코드입니다.
public class CreateSets {
char a[] = { 'a', 'b', 'c', 'd' };
List<HashSet> setList = new ArrayList<HashSet>();
public void createSubsets() {
for (int i = 0; i < a.length; i++) {
HashSet temp = new HashSet();
for (int j = i; j < a.length; j++) {
temp.add(a[j]);
}
setList.add(temp);
}
}
public static void main(String[] args) {
CreateSets cr = new CreateSets();
cr.createSubsets();
System.out.println(cr.setList);
}
}
private List<HashSet<Character>> createSubsets(char[] a) {
List<HashSet<Character>> tempListList = new ArrayList<HashSet<Character>>();
if (a.length == 0) {
HashSet<Character> temp = new HashSet<Character>();
//temp.add(' ');
tempListList.add(temp);
return tempListList;
}
char tempChar = a[a.length-1];
List<HashSet<Character>> setList = createSubsets(Arrays.copyOf(a, a.length-1));
for (HashSet<Character> charSet : setList) {
HashSet<Character> tempSet = new HashSet<>(charSet);
tempSet.add(tempChar);
tempListList.add(tempSet);
}
setList.addAll(tempListList);
return setList;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다