-
swift - set #2 (Comparing Sets, Combining Sets)swift 2021. 1. 7. 04:57
set #2
Comparing Sets
var a: Set = [1, 2, 3, 4, 5, 6, 7, 8, 9] var b: Set = [1, 3, 5, 7, 9] var c: Set = [2, 4, 6, 8, 10] let d: Set = [1, 7, 5, 9, 3] a == b a != b // set은 순서가 없기 때문에 요소의 동일성만 판단 b == d // 두 컬렉션에 저장된 요소를 순서대로 비교하는 메서드기 때문에 실행할 떄 마다 달라짐 b.elementsEqual(d) // 올바른 결과를 얻고 싶다면 Set을 배열로 바꾼후 정렬하고 비교해야 함 -> 비교할때는 보통 배열이 더 낫다. // Set은 집합확인이 좋다 // 부분집합 확인 a.isSubset(of: a) // 진부분집합 확인 a.isStrictSubset(of: a) // 부분집합 확인 b.isSubset(of: a) // 진부분집합 확인 b.isStrictSubset(of: a) // 상위집합 확인 a.isSuperset(of: a) a.isStrictSubset(of: a) a.isSuperset(of: b) a.isStrictSuperset(of: b) a.isSuperset(of: c) a.isStrictSuperset(of: c) // 교집합 확인 // 교집합이면 false , 서로소 집합이면 true a.isDisjoint(with: b) a.isDisjoint(with: c) b.isDisjoint(with: c)
Combining Sets
a = [1, 2, 3, 4, 5, 6, 7, 8, 9] b = [1, 3, 5, 7, 9] c = [2, 4, 6, 8, 10] // 합집합 구하기 var result = b.union(c) result = b.union(a) // 원본을 직접 변경하는 메소드 // form으로 시작하는 메소드는 원본을 직접 변경한다 b.formUnion(c) b a = [1, 2, 3, 4, 5, 6, 7, 8, 9] b = [1, 3, 5, 7, 9] c = [2, 4, 6, 8, 10] // 교집합 구하기 // 새로운 메소드로 만들어줌 result = a.intersection(b) // 교집합 없으면 빈 Set 리턴됨 result = c.intersection(b) a.formIntersection(b) a b.formIntersection(c) b a = [1, 2, 3, 4, 5, 6, 7, 8, 9] b = [1, 3, 5, 7, 9] c = [2, 4, 6, 8, 10] // 여집합 구하기 result = a.symmetricDifference(b) result = c.symmetricDifference(b) a.formSymmetricDifference(b) a = [1, 2, 3, 4, 5, 6, 7, 8, 9] b = [1, 3, 5, 7, 9] c = [2, 4, 6, 8, 10] // 차집합 구하기 result = a.subtracting(b) // 원본 변경하고 싶다면 a.subtracting(b)
'swift' 카테고리의 다른 글