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 |
댓글