집합(Set)


 

특정 조건에 맞는 원소들의 모임
기본적으로 집합은 중복된 원소를 추가할 수 없다.

 

😃집합 표현 방법


  • 원소나열법
  • 조건제시법
  • 벤 다이어그램

원소나열법
A = {1, 2, 3, 4, 5}, B = {2, 4, 6, 8, 10}

조건제시법
A = {A | A는 정수, 1 ≤ A ≤ 5}
B = {2B | B는 정수, 1 ≤ B ≤ 5}

벤 다이어그램


집합의 종류

  • 합집합
  • 교집합
  • 차집합
  • 여집합

합집합

어느 하나에라도 속하는 원소들을 모두 모은 집합

합집합

교집합

두 집합이 공통으로 포함하는 원소로 이루어진 집합

교집합

차집합

A(or B)에만 속하는 원소들의 집합(ex A - B)

차집합

여집합

전체집합(U)에서 A의 원소가 아닌 것들의 집합

여집합


 

자바에서 집합 구현

import java.util.Arrays;
import java.util.HashSet;

public class Main {
    public static void main(String[] args) {

//      1. 자바에서 집합 사용 - HashSet
        System.out.println("== HashSet ==");
        HashSet set1 = new HashSet();
        set1.add(1);
        set1.add(1);
        set1.add(1);
        System.out.println("set1 = " + set1);
        set1.add(2);
        set1.add(3);
        System.out.println("set1 = " + set1);
        set1.remove(1);
        System.out.println("set1 = " + set1);
        System.out.println(set1.size());
        System.out.println(set1.contains(2));
        

//      2. 집합 연산
        System.out.println("== 집합 연산 ==");

//      2-1. 교집합
        HashSet a = new HashSet(Arrays.asList(1, 2, 3, 4, 5));
        HashSet b = new HashSet(Arrays.asList(2, 4, 6, 8, 10));
        a.retainAll(b);
        System.out.println("교집합: " + a);

//      2-2. 합집합
        a = new HashSet(Arrays.asList(1, 2, 3, 4, 5));
        b = new HashSet(Arrays.asList(2, 4, 6, 8, 10));
        a.addAll(b);
        System.out.println("합집합: " + a);

//      2-3. 차집합
        a = new HashSet(Arrays.asList(1, 2, 3, 4, 5));
        b = new HashSet(Arrays.asList(2, 4, 6, 8, 10));
        a.removeAll(b);
        System.out.println("차집합: " + a);

    }

}

'자료구조&알고리즘' 카테고리의 다른 글

[백준]10826번 : 피보나치 수4  (0) 2022.07.17
[백준]1978번 : 소수 찾기  (0) 2022.07.17

+ Recent posts