Swift - 집합(Set)이란? (2)
Swift - 집합(Set)이란? (2)
이전 포스트에서 이어서 진행
집합 연산
intersaction: 교집합- 두 집합에서 공통적인 데이터를 새로운 집합으로 반환해줌
symmetricDifference: 합칩합에서 교집합을 뺀 것- 두 집합에서 각 집합이 가진 공통된 데이터를 제외한 데이터를 새로운 집합으로 반환해줌
union: 합집합- 두 집합에 데이터를 합쳐서 새로운 집합을 반환해줌
subtract: 차집합- 위 메서드들과는 달리 메서드를 호출하는 집합의 데이터를 기준으로 호출하는 집합만 가지고 있는 데이터만 남기고 나머진 다 날림
intersaction 예시
1
2
3
4
var ex1: Set = [1, 2, 3, 4, 5, 6, 7]
var ex2: Set = [2, 3, 4, 5]
print(ex1.intersection(ex2))
결과
1
[4, 2, 5, 3]
집합은 순서를 보장하지 않기 때문에 출력되는 데이터의 순서는 제각각임.
symmetricDifference 예시
1
2
3
4
var ex1: Set = [1, 2, 3, 4, 5, 6, 7]
var ex2: Set = [2, 3, 4, 5]
print(ex1.symmetricDifference(ex2))
결과
1
[1, 7, 6]
union 예시
1
2
3
4
var ex1: Set = [1, 2, 3, 4, 5, 6, 7]
var ex2: Set = [2, 3, 4, 5]
print(ex1.union(ex2))
결과
1
[4, 5, 1, 6, 7, 2, 3]
subtract 예시
1
2
3
4
var ex1: Set = [1, 2, 3, 4, 5, 6, 7]
var ex2: Set = [2, 3, 4, 5]
print(ex1.subtracting(ex2))
결과
1
[1, 6, 7]
부분 집합 & 포함 여부 확인
isSuperset: 해당 메서드를 호출하는 집합이 매개 변수로 넘어오는 집합보다 상위 집합인지 확인isSubset: 해당 메서드를 호출하는 집합이 매개 변수로 넘어오는 집합의 부분 집합인지 확인isStrictSuperset:isSuperset메서드와 거의 동일하지만, 집합의 데이터가 완전히 동일할 경우 상위 집합으로 취급하지 않고false를 반환함isStrictSubset:isSubset과 거의 동일하지만, 집합의 데이터가 완전히 동일할 경우 부분 집합으로 취급하지 않고false를 반환함isDisjoint: 동일 값이 포함된 집합이면false/ 포함되지 않은 집합이면true반환
isSuperset 예시
1
2
3
4
var ex1: Set = [1, 2, 3, 4, 5, 6, 7]
var ex2: Set = [2, 3, 4, 5]
print(ex1.isSuperset(of: ex2))
결과
1
true
isSubset 예시
1
2
3
4
var ex1: Set = [1, 2, 3, 4, 5, 6, 7]
var ex2: Set = [2, 3, 4, 5]
print(ex2.isSubset(of: ex1))
결과
1
true
isStrictSuperset 예시
1
2
3
4
var ex1: Set = [1, 2, 3, 4, 5, 6, 7]
var ex2: Set = [2, 3, 4, 5]
print(ex1.isStrictSuperset(of: ex2))
결과
1
true
isStrictSubset 예시
1
2
3
4
var ex1: Set = [1, 2, 3, 4, 5, 6, 7]
var ex2: Set = [2, 3, 4, 5]
print(ex2.isStrictSubset(of: ex1))
결과
1
true
isDisjoint 예시
1
2
3
4
var ex1: Set = [1, 2, 3, 4, 5, 6, 7]
var ex2: Set = [2, 3, 4, 5]
print(ex1.isDisjoint(with: ex2))
결과
1
false
This post is licensed under CC BY 4.0 by the author.