14. 딕셔너리 (Dictionary)

  • 고유 키 (Key) 와 귿에 대응하는 값(Value) 을 연결 하여 데이터를 저장하는 자료형이다. 인덱스 정수 대신 문자열 등의 고유 키를 사용한다는 차이를 제외 하면 배열과 아주 흡사하다.
            [ 키 : 데이터 , 키 : 데이터 , …..]
  • 하나의 키는 하나의 데이터에만 연결되어야 한다.
  • 하나의 딕셔너리에서 키는 중복될 수 없다. 중복해서 선언하면 아이템 추가가 아니라 수정이 이루어져 기존 키에 연결된 데이터가 제거 된다.
  • 저장할 수 있는 데이터 타입에는 제한이 없지만, 하나의 딕셔너리에 저장하는 데이터 타입은 모두 일치 해야 한다.
  • 딕셔너리의 아이템에는 순서가 없지만 키에는 내부적으로 순서가 있으므로 for~in 구문을 이용한 순회 탐색을 할 수 있다.
  • 딕셔너리에서 사용할 수 있는 키의 타입은 거의 제한이 없으나 해시 연산이 가능한 타입이어야 한다.
var capital = [“KR” : “Seoul” , “EN” : “London” , “FR” : “Paris”]


저장된 값
KR
Seoul
EN
London
FR
paris

capital[“KR”] // “Seoul”
capital[“EN”] // “London”
capital[“FR”] // “Paris”

  • 딕셔너리의 초기화
Dictionary<String, Int>() //문자열 키와 정수 값 딕셔너리

Dictionary<String, String>() //문자열 키와 문자열 값 딕셔너리

Dictionary<String, AnyObject>() //문자열 키와 범용 클래스 값으로 이루어진 딕셔너리

Dictionary<Character, String>() //문자 키와 문자열 값으로 이루어진 딕셔너리

  • 딕셔너리의 선언과 초기화
var capital = Dictionary<String, String>( ) //방법 1

var capital = [String : String]( ) //방법 2

###################

var capital : Dictionary<String, String> //타입 이노베이션을 이용한 딕셔너리 선언

capital = Dictionary( ) //딕셔너리 초기화

###################

var capital : [string:String] //타입이노테이션을 이용한 딕셔너리 선언

capital = [String:String]( ) //딕셔너리 초기화

################### 

//딕셔너리의 초기화
capital = Dictionary<String, String>( ) 
capital = Dictionary( )
capital = [String:String]( )
capital = [:]

  • 딕셔너리에 동적 아이템 추가 하기
var newCapital = [String:String]( )
newCapital[“JP”] = "Tokyo"
print(newCapitall[“JP"])
// Tokyo 

  • 데이터 수정 하기
newCapital.updateValue(“okinawa”, forked:”JP”)
print(newCapitall[“JP”])
//출력 값 : okinawa

  • 데이터 삭제 하기
newCapital[“JP”] = nil
print(newCapitall[“JP”])
//출력 값 : error

################### 

newCapital.removeAll( ) // 딕셔너리의 모든 값 삭제

################### 

newCapital.removeValue(forKey:”JP”) // JP 키 의 값 삭제



  • 딕셔너리 순회탐색 
for row in newCapital {
    let (key , value) = row
    print(“현재 데이터는 \(key) : \(value) 입니다.”)
}

// 출력
현재 데이터는 CA : Value = beijing 입니
현재 데이터는 KR : Value = seoul 입니
현재 데이터는 JP : Value = okinawa 입니

################### 
간결한 버전
for (key, value) in newCapital {
    print(“현재 데이터는 \(key) : \(value) 입니다.”)
}
// 출력
현재 데이터는 CA : Value = beijing 입니
현재 데이터는 KR : Value = seoul 입니
현재 데이터는 JP : Value = okinawa 입니



'Swfit' 카테고리의 다른 글

13. Swift 구조체와 클래스  (0) 2017.08.04
12. Swift 클로저(Closure)  (0) 2017.08.04
11. Swift 함수의 중첩  (0) 2017.08.04
10. Swift 일급 객체로서의 함수  (0) 2017.08.04
9. Swift 매개변수  (1) 2017.08.04

설정

트랙백

댓글