Swift는 강력하고 유연한 프로그래밍 언어로, 다양한 데이터 타입을 제공합니다. 그 중 하나인 Set
데이터 타입은 고유한 값들의 집합을 표현하는데 사용됩니다. Set은 중복된 값을 허용하지 않으며, 순서가 없는 컬렉션입니다.
Set 생성 및 초기화
비어있는 Set을 초기화하거나, 기존의 배열이나 집합 데이터로부터 Set을 생성하는 방법을 알아봅시다.
빈 Set 생성
var emptySet: Set<Int> = Set<Int>()
var anotherEmptySet = Set<String>()
위의 코드에서 Set<Int>
는 정수를 원소로 갖는 Set을 나타내며, Set<String>
은 문자열을 원소로 갖는 Set을 나타냅니다. Set()
은 빈 Set을 생성합니다.
배열로부터 Set 생성
let fruits = ["apple", "banana", "orange", "apple"]
let uniqueFruits = Set(fruits)
// 출력: ["banana", "apple", "orange"]
위의 코드에서 fruits
배열에는 중복된 “apple”이 포함되어 있습니다. 하지만 Set(fruits)
는 중복된 값을 제외하고 고유한 원소만을 가진 Set을 생성합니다.
Set의 기본 연산
Set은 수학적 집합과 유사한 동작을 하며, 다양한 집합 연산을 제공합니다.
원소 추가
var numbers: Set<Int> = [1, 2, 3]
numbers.insert(4)
// 출력: [2, 3, 4, 1]
위의 코드에서 insert()
함수를 사용하여 Set에 원소를 추가합니다.
원소 삭제
numbers.remove(2)
// 출력: [3, 4, 1]
위의 코드에서 remove()
함수를 사용하여 Set에서 원소를 삭제합니다.
원소 포함 여부 확인
numbers.contains(3)
// 출력: true
numbers.contains(5)
// 출력: false
위의 코드에서 contains()
함수를 사용하여 Set에 특정 원소가 포함되어 있는지 여부를 확인할 수 있습니다.
Set의 순회
Set을 순회하는 방법은 배열과 비슷합니다.
for number in numbers {
print(number)
}
위의 코드에서 numbers
Set에 있는 모든 원소들을 순차적으로 출력합니다.
Set 연산
Set은 다양한 집합 연산을 지원합니다. 가장 일반적인 예시는 교집합, 합집합, 차집합입니다.
교집합
let setA: Set<Int> = [1, 2, 3, 4, 5]
let setB: Set<Int> = [4, 5, 6, 7, 8]
let intersection = setA.intersection(setB)
// 출력: [4, 5]
위의 코드에서 intersection()
함수를 사용하여 두 Set의 교집합을 구할 수 있습니다.
합집합
let union = setA.union(setB)
// 출력: [1, 2, 3, 4, 5, 6, 7, 8]
위의 코드에서 union()
함수를 사용하여 두 Set의 합집합을 구할 수 있습니다.
차집합
let subtracting = setA.subtracting(setB)
// 출력: [1, 2, 3]
위의 코드에서 subtracting()
함수를 사용하여 첫 번째 Set에서 두 번째 Set의 원소를 제외한 차집합을 구할 수 있습니다.
결론
Swift의 Set
데이터 타입을 사용하면 중복된 값 없이 고유한 원소들을 다룰 수 있습니다. Set을 효율적으로 사용하여 집합 연산을 수행하고, 데이터를 처리하는데 도움을 받을 수 있습니다.
더 많은 Set 데이터 타입의 기능과 사용법에 대해서는 Swift 공식 문서를 참고하시기 바랍니다.