- Array: 순서가 있는 리스트 컬렉션
- Dictionary: 키와 값의 쌍으로 이루어진 컬렉션
- Set: 순서가 없고, 멤버가 유일한 컬렉션
Array
멤버가 순서(인덱스)를 가진 리스트 형태의 컬렉션 타입이다.
var someArray: [String] = []
var someArray1: [String] = Array<String>()
print(type(of: someArray)) // Array<String>
print(type(of: someArray1)) // Array<STring>
Array 활용
만약에 someArray라는 배열을 선언할 때 "let" 키워드로 하면 수정이 안된다.
// 요소 추가
someArray.append("apple")
someArray.append("banana")
print(someArray) // ["apple", "banana"]
// 요소 교체
someArray[0] = "melon"
print(someArray) // ["melon", "banana"]
// 요소 삭제
someArray.remove(at: 0)
print(someArray) // ["banana"]
someArray.removeAll()
print(someArray) // []
print(someArray.count) // 0
Dictionary
키와 값의 쌍으로 이루어진 컬렉션 타입이다.
var someDictionary: [String: Int] = [:]
var someDictionary1: [String: Int] = [String:Int]()
print(type(of: someDictionary)) // Dictionary<String, Int>
print(type(of: someDictionary1)) // Dictionary<String, Int>
Dictionary 활용
Array와 마찬가지로 "let" 키워드를 통해 선언하면 불변이 된다.
// 키에 해당하는 값 할당
someDictionary["kiwi"] = 1000
someDictionary["melon"] = 2000
print(someDictionary) // ["melon": 2000, "Kiwi": 1000]
// 키에 해당하는 값 변경
someDictionary["kiwi"] = 4000
print(someDictionary) // ["melon": 2000, "kiwi": 4000]
// 키에 해당하는 값 제거
someDictionary.removeValue(forKey: "melon")
print(someDictionary) // ["kiwi": 4000]
Set
순서가 없고, 멤버가 유일한 것을 보장하는 컬렉션 타입
var someSet: Set<Int> = Set<Int>()
someSet.insert(1)
someSet.insert(2)
someSet.insert(3)
someSet.insert(4)
someSet.insert(5)
someSet.insert(6)
someSet.insert(6)
print(someSet) // [6, 3, 4, 2, 1, 5]
// 요소 삭제
someSet.remove(3)
print(someSet) // 3을 제외한 값 출력 [1, 6, 2, 5, 4]
Set은 진합연산에 많이 활용된다.
setA.intersection(setB)는 A에서 B랑 맞는 데이터를 꺼내라 이런 의미이다.
// Set은 집합연산에서 많이 활용
let setA: Set<Int> = [1,2,3,4,5,6]
let setB: Set<Int> = [2,4,6,8,10]
// 합집합
let union: Set<Int> = setA.union(setB)
print(union) // [4, 5, 8, 6, 2, 10, 1, 3]
// 합집합 오름차순 정렬
let sortedUnion: [Int] = union.sorted()
print(sortedUnion) // [1, 2, 3, 4, 5, 6, 8, 10]
// 교집합
let intersection: Set<Int> = setA.intersection(setB)
print(intersection) // [4, 6, 2]
// 차집합
let subtracting: Set<Int> = setA.subtracting(setB)
print(subtracting) // [1, 3, 5]