고유한 값 저장: Set은 중복된 값을 허용하지 않으므로, 중복된 요소를 제거하거나 중복된 값을 방지하기 위해 사용됩니다. 이는 데이터의 일관성을 유지하고 중복된 데이터를 효과적으로 처리할 때 유용합니다.
검색 및 포함 여부 확인: Set은 내부 구현상 해시 테이블을 사용하므로, 값을 검색하거나 특정 요소가 Set에 포함되는지 빠르게 확인할 수 있습니다. 이는 성능 측면에서 유용합니다.
집합 연산: Set은 집합 연산을 수행하기 위한 다양한 메서드와 연산자를 제공합니다. 예를 들어, 두 개의 Set을 합치거나 교집합을 찾는 등의 작업을 간단하게 수행할 수 있다
순서가 중요하지 않을 때: Set은 요소의 순서를 보장하지 않습니다. 순서가 중요한 경우 배열을 사용하는 것이 더 적절할 수 있습니다. 그러나 요소의 순서가 중요하지 않고 중복을 허용하지 않아야 하는 경우 Set을 사용하는 것이 좋습니다.
해시 가능한 요소: Set은 요소가 해시 가능해야 하므로, Set에 저장될 요소는 해시 가능해야 합니다. 기본 Swift 타입들 (정수, 문자열, 딕셔너리, 배열 등)은 대부분 해시 가능하며, 필요한 경우 사용자 정의 타입도 해시 가능하게 만들 수 있.
고유한 값을 저장하기 위한 컬렉션 타입 중 하나
// 값 추가
letters.insert("a")
letters.insert("a")
letters.insert("b")
print( letters )
// 값 삭제
letters.remove("b")
print( letters )
// 값의 포함 여부
letters.contains("a")
letters.contains("b")
// 반복
letters.insert("b")
letters.insert("c")
letters.insert("d")
for c in letters {
print(c)
}
// 집합 연산 (배열과 차이)
let odd: Set = [1, 3, 5, 7, 9]
let even: Set = [0, 2, 4, 6, 8]
let single: Set = [2, 3, 5, 7]
print(odd.union(even).sorted()) // 합집합
print(odd.subtracting(single)) // 차집합, 특정 집합의 공통된 값을 제외한 새로운 집합을 생성
print(odd.intersection(single)) // 교집합, 공통된 값으로 새로운 집합을 생성
print(odd.symmetricDifference(single)) // 여집합, 공통된 값을 제외한 새로운 집합을 생성
사용자 정보를 중복없이 관리 및 검색할때 사용