[swift] Swift 집합

Swift는 다양한 자료구조를 제공하며, 그 중 하나인 집합(set)에 대해 알아보겠습니다. 집합은 고유한 값들의 집합으로, 순서가 없고 중복된 값이 없습니다. Swift의 Set 타입을 사용하여 집합을 다룰 수 있습니다.

집합 생성하기

집합을 생성하는 방법은 여러 가지가 있습니다. 초기값을 넣어 집합을 생성하거나, 빈 집합을 생성한 후 값을 추가할 수도 있습니다.

// 초기값을 가지는 집합 생성
let fruits: Set<String> = ["Apple", "Banana", "Orange"]

// 빈 집합 생성 후 값 추가
var numbers = Set<Int>()
numbers.insert(1)
numbers.insert(2)
numbers.insert(3)

집합의 기본 동작

집합은 중복된 값을 허용하지 않으므로, 이미 있는 값에 대해 중복된 값을 추가하면 무시됩니다. 집합에 값이 있는지 확인하기 위해서는 contains 메서드를 사용할 수 있습니다.

let animals: Set<String> = ["Cat", "Dog", "Elephant"]
animals.insert("Cat") // 중복된 값이므로 추가되지 않음

if animals.contains("Dog") {
    print("집합에 개가 있습니다.")
}

집합의 연산

Swift의 집합은 수학적인 집합 연산을 지원합니다. 다른 집합과의 합집합, 교집합, 차집합을 구할 수 있습니다.

let setA: Set<Int> = [1, 2, 3, 4, 5]
let setB: Set<Int> = [4, 5, 6, 7, 8]

let union = setA.union(setB) // 합집합
let intersection = setA.intersection(setB) // 교집합
let difference = setA.subtracting(setB) // 차집합

집합 순회하기

집합은 순서가 없는 자료구조이므로, for-in 루프를 사용하여 집합의 요소를 순회할 수 있습니다.

let cities: Set<String> = ["Seoul", "Tokyo", "London"]

for city in cities {
    print(city)
}

집합의 활용

집합은 고유한 값들을 저장하는 용도로 사용될 수 있습니다. 중복된 값이 필요 없는 경우, 집합을 사용하여 중복을 제거할 수 있습니다. 또한 집합을 활용하여 원하는 데이터를 빠르게 조회할 수도 있습니다.

참고 자료