본문 바로가기
알고리즘/개념

집합 (Set)

by 도쿠니 2022. 3. 30.

1. 집합 (Set)

- 명확한 조건을 만족하는 자료의 모임

- 자바에서는 Set이 집합이라 볼 수 있다. 

- 종류 : 교집합 / 합집합 / 차집합 / 여집합

 

 

2. 교집합 (Intersect)

- 집합 A,B 양쪽 모두에 속하는 요소의 집합

- Set의 retainAll 메소드 사용

        HashSet<Integer> a = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
        HashSet<Integer> b = new HashSet<>(Arrays.asList(2, 4, 6, 8, 10));

        // retainAll은 메소드를 호출한 쪽에 교집합 연산 결과를 저장한다.
        a.retainAll(b);

        System.out.println("교집합 : " +a); // 2 , 4

 

3. 합집합 (Union)

- 집합 A와 집합 B 가운데 적어도 한쪽에 속하는 요소의 집합

- Set의 addAll 메소드 사용

        HashSet<Integer> a = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
        HashSet<Integer> b = new HashSet<>(Arrays.asList(2, 4, 6, 8, 10));

        a.addAll(b);

        System.out.println("합집합 : " +a); // 1, 2, 3, 4, 5, 6, 8, 10

 

4. 차집합 (Difference)

- 집합 A의 요소 가운데 집합 B의 요소를 제외한 요소의 집합

- Set의 removeAll 메소드 사용

        HashSet<Integer> a = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
        HashSet<Integer> b = new HashSet<>(Arrays.asList(2, 4, 6, 8, 10));

        a.removeAll(b);

        System.out.println("차집합 : " +a); // 1, 3, 5

 

5. 부분집합 

- 다른 집합에 포함된 집합

- 집합 A의 모든 요소가 집합 B의 요소이면 A는 B의 부분집합 이다.

- 집합 A의 모든 요소가 집합 B의 요소이면서 집합 A와 집합 B가 같지 않을 때, A는 B의 진부분집합 이다.

- Set의 containsAll 메소드 사용

        HashSet<Integer> a = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
        HashSet<Integer> b = new HashSet<>(Arrays.asList(1,2));
        HashSet<Integer> c = new HashSet<>(Arrays.asList(1,6));

        System.out.println(a.containsAll(b)); // true
        System.out.println(a.containsAll(c)); // false

'알고리즘 > 개념' 카테고리의 다른 글

점화식과 재귀함수  (0) 2022.04.01
조합 (Combination)  (0) 2022.04.01
순열  (0) 2022.03.30
최대 공약수, 최소 공배수 구하기  (0) 2022.03.30
경우의 수  (0) 2022.03.30

댓글