본문 바로가기

CS/자료구조

[자료구조] Dictionary란(Swift)

Dictionary(딕셔너리)란

Key , Value 가 함께 저장되는 자료구조입니다.

Key 값은 중복되면 안되고 value는 상관없습니다.

 

 

딕셔너리 생성방법

var dic : [String : Int] = [:] // 타입을 작성해야합니다
var dic1 : [String : Int] = ["testKeyOne" : 150 , "testKeyTwo" : 100]
var dic2  = [String : Int]()
var dic3 = Dictionary<String,Int>()

 

 

딕셔너리 값 접근

var dic : [String:Int] = ["age" : 10 , "height" : 100]

var height = dic["height"] // Optional(100)
var age = dic["age"] // Optional(10)
var nilValueCheck = dic["aaa"] // nil

 

값 접근시 기본값이 Optional Type 주의

if let _ = dic["age"] {
    dic["age"]! += 100
}else{
    dic["age"] = 10
}

 

 

딕셔너리 Key , Value값 접근

var dicKey = dic.keys //key값 배열 획득 배열과 동일하게 사용가능 ex) sorted
var dicValue = dic.values

for key in dicKey {
    print(key)
}

for value in dicKey {
    print(value)
}

 

 

왜 사용해야할까 or 나만의 고민

데이터 탐색하는 속도가 배열에 비하여 매우빠르다 (배열은 O(n) , 딕셔너리는 O(1))

특정 key ( 유일해야함 ) 값을 통하여 data를 저장하고 싶다면 딕셔너리 자료구조를 선택하는게 좋음