본문 바로가기
Swift/기본

컬렉션 타입

by 밤새는탐험가 2024. 3. 21.
  • 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]

 

 

'Swift > 기본' 카테고리의 다른 글

함수 고급  (0) 2024.03.22
함수  (0) 2024.03.22
기본 데이터 타입  (0) 2024.03.21
상수, 변수  (0) 2024.03.21
클로저 - @autoclosure  (0) 2024.03.20