ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Swift] Dictionary 간단 정리
    iOS/🟠 Swift 2021. 3. 16. 16:18

    λ‹€λ₯Έ μ–Έμ–΄μ—μ„œ 많이 봐왔기 λ•Œλ¬Έμ— μ΅μˆ™ν•˜λ‹€κ³  μƒκ°ν•˜μ˜€μ§€λ§Œ,

    μ‹€μ œλ‘œ μ•Œκ³ λ¦¬μ¦˜ 문제λ₯Ό ν’€ λ•Œ μ‚¬μš©λ²•μ΄ 잘 λ– μ˜€λ₯΄μ§€ μ•Šμ•„μ„œ κ°„λž΅ν•˜κ²Œ μ •λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€!

     

    더 μžμ„Έν•œ λ‚΄μš©μ€ μŠ€μœ„ν”„νŠΈ κ³΅μ‹λ¬Έμ„œ μ—μ„œ κ³΅λΆ€ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€πŸΆ


    νŠΉμ§•

    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 } {
        
    }
    

    μ†ŒνŒ…ν•˜λŠ” 이유

    λ”•μ…”λ„ˆλ¦¬λŠ” μˆœμ„œκ°€ μ—†λŠ” μ»¬λ ‰μ…˜μž…λ‹ˆλ‹€.

    μ•„λž˜ 사진과 같이 μˆœνšŒν• λ•Œλ§ˆλ‹€ μˆœμ„œκ°€ λ°”λ€Œλ―€λ‘œ μˆœνšŒμ‹œ μˆœμ„œκ°€ μ€‘μš”ν•˜λ©΄ μ†ŒνŒ…ν•΄μ•Ό ν•©λ‹ˆλ‹€.

     

     

     

     

    좔가적인 μ •λ³΄λŠ” ν•„μš”μ‹œμ— μΆ”κ°€ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€πŸ‘πŸ»

     

     

     

    끝!


    λŒ“κΈ€

μ–΄μ œλ³΄λ‹€ λ°œμ „ν•œ λ‚˜