컬렉션 프레임 워크 (목록 및 집합)를 사용하여 문자 배열에서 가능한 모든 요소 조합 생성

라구

문자 배열 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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관