본문 바로가기
iOS

[iOS 앱 개발] Swift Dictionary

by Dokon Jang 2022. 9. 5.
반응형

프로그래밍을 할 때 Dictionary 자료 구조 유용하게 사용하고 있습니다.

C#에서는 Dictionary, 자바에서는 Map(HashMap, TreeMap 등) 등을 활용하고 있습니다.

Swift의 Dictionary에 대한 간단한 사용법입니다.

 

빈 Dictionary 생성
var dict1 = [Int : String]()
var dict2 : [Int : String] = [:]
var dict3 : Dictionary = [Int : String]()
var dict4 : Dictionary<Int, String> = [:]
var dict5 : Dictionary = Dictionary<Int, String>()

 

Dictionary 초기화
var dict1 = [1:"A", 2:"B", 3:"C"]
var dict2 : [Int : String] = [1:"A", 2:"B", 3:"C"]
var dict3 : Dictionary = [1:"A", 2:"B", 3:"C"]
var dict4 : Dictionary<Int, String> = [1:"A", 2:"B", 3:"C"]
var dict5 : Dictionary = [1:"A", 2:"B", 3:"C"]

 

Dictionary에 추가하기
var dict = [1:"A", 2:"B", 3:"C"]

// 존재하지 않는 Key에 값을 대입하면 추가된다.
dict[4] = "D"

 

Dictionary에서 삭제하기
var dict = [1:"A", 2:"B", 3:"C"]

// 존재하는 Key에 nil을 대입하면 삭제된다.
dict[1] = nil

// 전체 삭제
dict.removeAll()

 

Dictionary에서 값 변경하기
var dict = [1:"A", 2:"B", 3:"C"]

// 존재하는 Key에 nil을 대입하면 삭제된다.
dict[1] = dict[1]! + "BC"

 

Dictionary에 Key가 있는지 판별
var dict = [1:"A", 2:"B", 3:"C"]

if dict[1] != nil {
    print("Key 있음")
}else{
    print("Key 없음")
}

 

Dictionary 루프(for in) 예제
var dict = [1:"A", 2:"B", 3:"C"]

// key, value 튜플
for (key, value) in dict {
    print("\(key) : \(value)")
}

// key 값
for key in dict.keys {
    print("\(key) : \(dict[key]!)")
}

// value 값
for value in dict.values {
    print(value)
}

 

Dictionary 정렬
sorted의 $0, $1은 각 Item이고
$0.0은 첫번째 Key, $1.0은 두번째 Key
$0.1은 첫번째 Value, $1.1은 두번째 Value
var dict = [1:"A", 2:"D", 3:"C"]

// Key 정렬
var dictSortedKeys_ASC = dict.sorted{$0.0 < $1.0} // ASC
var dictSortedKeys_DESC = dict.sorted{$0.0 > $1.0} // DESC

// Value 정렬
var dictSortedValues_ASC = dict.sorted{$0.1 < $1.1} // ASC
var dictSortedValues_DESC = dict.sorted{$0.1 > $1.1} // DESC
반응형

댓글