[SWIFT] ๋์ ๋๋ฆฌ (Dictionary)
๋๊ดํธ์ ๋ฌถ์, ๊ฐ ์์(element)๋ ํค(Key)์ ๊ฐ(value)์ ์์ ์ฝ๋ก (:)์ผ๋ก ์ฒ๋ฆฌ
let dic: Dictionary<String, String> = [Key๊ฐ: Value๊ฐ, Key๊ฐ: Value๊ฐ]
let dic: [String: String] = [Key๊ฐ: Value๊ฐ, Key๊ฐ: Value๊ฐ]
๊ท์น
1. ํค ๊ฐ์ ์ ์ผํด์ผํจ( ์ค๋ณต ๋ถ๊ฐ๋ฅ ), ๋ฐธ๋ฅ๊ฐ์ ์ค๋ณต ๊ฐ๋ฅ
2. ๋์ผํ ํ์
์์ ๋ฐ์ดํฐ๋ง ๋ด์ ์ ์์
3. ๋์
๋๋ฆฌ์ ๊ฐ(Value)์ ๋์
๋ฆฌ ๋๋ ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ์ค์ฒฉ๋ ๊ฐ๋ฅ
4. ๋์
๋๋ฆฌ์ ํค(Key)๋ Hashableํด์ผํจ. (๊ฒ์ ์๋ ๋น ๋ฆ)
์ด๋ค ํ์ ์ด Hashable ํ ๊น?
ํด์ํจ์์ inpu๊ฐ์ผ๋ก ์ฐ์ผ ์ ์๋ "ํ์ " (Hashable ํ๋กํ ์ฝ ์ฑํ)
โ์ค์ํํธ์ ๊ธฐ๋ณธ ํ์ ์ ๋ชจ๋ Hashable
ํด์ ์๊ณ ๋ฆฌ์ฆ
Hashํจ์๋ Key๊ฐ์ ๋ฐ๋ผ์ ์ ์ผํ, ๊ณ ์ ๋ value ๊ฐ์ ๊ฐ์ง๋ค. (ํด์ ๋ฐธ๋ฅ๊ฐ ์๋ก ๋ค๋ฅธ ๊ฐ์ด๋, ์๋ก ๋ค๋ฅธ Input)
== ํด์ํจ์๋ฅผ ์ฌ์ฉํด ์ ์ผํ ๊ฐ์ผ๋ก ๋ณํ์ด ๊ฐ๋ฅํ ํ์ ์ธ์ง์ ์ฌ๋ถ๋ฅผ ๋ฌป๋ ๊ฒ
๐๋ฐฐ์ด์ ๋ฐฐ์ด ์์ ์๋ ๊ฐ๋ค์ ์ฐพ๊ธฐ ์ํด ํญ์ 0๋ฒ์งธ ์์๋ถํฐ ํ์์ ํ๋ค (์ค๋๊ฑธ๋ฆผ)
๋์ ๋๋ฆฌ๋ ์์๊ฐ ์์ด ํด์ฌํ ์ด๋ธ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
(ํด์ํ ์ด๋ธ์ ์๋ฃ๊ตฌ์กฐ์, ๋งค์ฐ ๋น ๋ฅธ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์์ ์ฌ์ฉ ๋จ ==> ๋์ ๋๋ฆฌ ,Set์ ๋ฐฐ์ด๋ณด๋ค ๋น ๋ฅธ ๊ฒ์์ ๊ฐ๋ฅ์ผ ํจ)
1) ๊ฐ์ ์ ์ผ์ฑ ๋ณด์ฅ (ํด์ ์๊ณ ๋ฆฌ์ฆ)
2) ๊ฒ์ ์๋์ ๋น ๋ฆ
key | value |
12377 | banana |
12456 | orange |
๋น ๋์ ๋๋ฆฌ์ ์์ฑ
๋ฌธ๋ฒ
let dic: Dictionary<String, String> = [:]
let dic: Dictionary<String, String>()
let dic: [String: String]()
๋์ ๋๋ฆฌ์ ๋ฉ์๋(ํจ์)
- count
- ์์์ ๊ฐ์ ๋ฐํํ๋ ๋ฉ์๋ (ํค์ ๋ฐธ๋ฅ๊ฐ์ ํ์์ผ๋ก ์ทจ๊ธ)
- isEmpty
- ๋์ ๋๋ฆฌ๊ฐ ๋น์ด์๋์ง๋ฅผ True ๋๋ False๋ก ๋ฐํํ๋ ๋ฉ์๋
- contains(where:)
- ์ํ์ค์ ์ง์ ๋ ์ ์ด๋ฅผ ๋ง์กฑํ๋ ์์๊ฐ ํฌํจ๋์ด ์๋์ง True๋๋ False๋ก ๋ฐํํ๋ ๋ฉ์๋
- randomElement()
- ๋๋ค์ผ๋ก ๋ฝ์ ์์๋ฅผ ๋ฆฌํดํ๋ ๋ฉ์๋ (Named Tuple ํํ๋ก ๋ฆฌํด)