Swift에서는 콜렉션타입으로 Array, Set, Dictionary 세가지를 지원한다.
var에 할당하면 변경 가능, let에 할당하면 변경 불가능하다.
Array 라고 적을 수 있지만 [Element] 형태로도 작성 가능하다.
var someInts = [Int]()
var threeDoubles = Array(repeating: 0.0, count: 3)
// [0.0, 0.0, 0.0]
var anotherThreeDoubles = Array(repeating: 2.5, count: 3)
// anotherThreeDoubles : [2.5, 2.5, 2.5]
var sixDoubles = threeDoubles + anotherThreeDoubles
// sixDoubles : [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]
var shoppingList: [String] = ["Eggs", "Milk"]
shoppingList.count
shoppingList.isEmpty
shoppingList.append("Four")
shoppingList += ["bake", "cheese"]
shoppingList.insert("Maple Syrup", at:0)
let mapleSyrup = shoppingList.remove(at: 0)
firstItem = shoppingList[0]
// firstItem : "Six eggs"
let apples = shoppingList.removeLast()
for (index, value) in shoppingList.enumerated() {
print("Item \(index + 1): \(value)")
}
// Item 1: Six eggs
// Item 2: Milk
// Item 3: Flour
// Item 4: Baking Powder
// Item 5: Bananas
Set 형태로 저장되기 위해서는 반드시 타입이 Hasable이어야 한다. Swift 에서 Stirng, Int, Double, Bool 같은 기본 타입은 기본적으로 Hashable이다.
var letters = Set<Character>()
letters.insert("a")
letters = []
var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]
favorite.isEmpty
추가
favorite.insert("jazz")
삭제
favorite.remove("rock")
값 확인
favorite.contains("funk")
for-in loop 를 이용해 Set을 순회 가능하다.

let oddDigits: Set = [1, 3, 5, 7, 9]
let evenDigits: Set = [0, 2, 4, 6, 8]
let singleDigitPrimeNumbers: Set = [2, 3, 5, 7]
oddDigits.union(evenDigits).sorted()
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
oddDigits.intersection(evenDigits).sorted()
// []
oddDigits.subtracting(singleDigitPrimeNumbers).sorted()
// [1, 9]
oddDigits.symmetricDifference(singleDigitPrimeNumbers).sorted()
// [1, 2, 9]
let houseAnimals: Set = ["🐶", "🐱"]
let farmAnimals: Set = ["🐮", "🐔", "🐑", "🐶", "🐱"]
let cityAnimals: Set = ["🐦", "🐭"]
houseAnimals.isSubset(of: farmAnimals)
// 참
farmAnimals.isSuperset(of: houseAnimals)
// 참
farmAnimals.isDisjoint(with: cityAnimals)
// 참
[Key: Value] 형태로 Dictionary를 선언해 사용할 수 있다.
var namesOfIntegers = [Int: String]()
namesOfIntegers[16] = "sixteen"
namesOfIntegers = [:]
// 빈 사전
var airports: [String: String] = = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
airports.isEmpty
값 할당
airports["LHR"] = "London"