[Swift] Dictionary κ°λ¨ μ 리
λ€λ₯Έ μΈμ΄μμ λ§μ΄ λ΄μκΈ° λλ¬Έμ μ΅μνλ€κ³ μκ°νμμ§λ§,
μ€μ λ‘ μκ³ λ¦¬μ¦ λ¬Έμ λ₯Ό ν λ μ¬μ©λ²μ΄ μ λ μ€λ₯΄μ§ μμμ κ°λ΅νκ² μ 리νμμ΅λλ€!
λ μμΈν λ΄μ©μ μ€μννΈ κ³΅μλ¬Έμ μμ 곡λΆνμλ©΄ λ©λλ€πΆ
νΉμ§
1. ν΄μ¬ ꡬ쑰
key μ ν΄λΉνλ λ°μ΄ν°λ₯Ό ν΄μ±νμ¬ 'identifier' λ‘ μ¬μ©ν©λλ€.
key λ₯Ό ν΄μ±νκΈ° λλ¬Έμ ν΄λΉ λ°μ΄ν°μ νμ μ Hashable νλ‘ν μ½μ μ±ννκ³ μμ΄μΌ ν©λλ€.
2. νλμ element λ Key-Value μμΌλ‘ ꡬμ±λμ΄ μμ΅λλ€.
νλμ value λ unique ν key κ°κ³Ό μ°κ²°λμ΄ μμ΅λλ€.
3. μμκ° μμ΅λλ€.
λ°λΌμ for-in μν μ νμ κ°μ μμλ‘ μννλ€λ κ²μ 보μ₯νμ§ μμ΅λλ€.
ν΄κ²°λ² : key λ value λ₯Ό μνλ κ·μΉμΌλ‘ μ λ ¬νμ¬ μνν©λλ€.
κΈ°λ³Έ λ¬Έλ²
/* 1 */
var myDict1: Dictionary<Int, Int> = [:]
/* 2 */
var myDict2: [Int:Int] = [:]
/* 3 */
var myDict3 = [Int:Int]()
/* 4 */
var myDict4 = [1:1, 2:2, 3:3]
4κ°μ§ λ°©λ²μΌλ‘ Dictionary λ₯Ό μμ±ν μ μμ΅λλ€.
μ°Έκ³ λ‘ λΉ λμ λ리λ₯Ό νννλ 리ν°λ΄μ ' [:] ' μ λλ€. ( μ½λ λ΄ *1*, *2* μμ νμΈ )
μμμ μΆκ° λ° μμ
/* μ μ½λλ μλΈμ€ν¬λ¦½νΈλ₯Ό μ΄μ©ν μμ μΆκ°, μλλ μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ© */
myDict4[4] = 4
myDict4.updateValue(4, forKey: 4)
/* μ μ½λλ μλΈμ€ν¬λ¦½νΈλ₯Ό μ΄μ©ν μμ μμ , μλλ μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ© */
myDict4[2] = nil
myDict4.removeValue(forKey: 2)
/* μ μ½λλ 리ν°λ΄μ μ΄μ©ν μμ μ 체 μμ , μλλ μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ© */
myDict4 = [:]
myDict4.removeAll()
μν
/* element λ³λ‘ μννκ³ , tuple νμ
μ΄λ€ */
for (key, value) in myDict4 {
print(key, value)
}
/* .keys νλ‘νΌν°λ₯Ό ν΅ν΄ key λ§ μνν μ μλ€ */
for key in myDict4.keys {
...
}
/* .values νλ‘νΌν°λ₯Ό ν΅ν΄ value λ§ μνν μ μλ€ */
for value in myDict4.values {
...
}
/* key λ₯Ό λ΄λ¦Όμ°¨μμΌλ‘ μν
νμ¬ μν */
for key in myDict4.keys.sorted { $0 > $1 } {
}
μν νλ μ΄μ
λμ λ리λ μμκ° μλ 컬λ μ μ λλ€.
μλ μ¬μ§κ³Ό κ°μ΄ μνν λλ§λ€ μμκ° λ°λλ―λ‘ μνμ μμκ° μ€μνλ©΄ μν ν΄μΌ ν©λλ€.
μΆκ°μ μΈ μ 보λ νμμμ μΆκ°νλλ‘ νκ² μ΅λλ€ππ»
λ!