-
[Kotlin] Map ์ฌ์ฉ๋ฒAndroid/Kotlin 2021. 8. 12. 23:59๋ฐ์ํ
- ์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ผ๋ก ์์ฑํ์์ต๋๋ค.
Map
Key์ Value์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ Collection ์ ๋๋ค.
List์ ๋์ผํ๊ฒ ๊ฐ๋ณํ Map์ ๋ถ๋ณํ Map์ด ์์ต๋๋ค.
immutable Map
fun main(){ val map1 = mapOf("key1" to 1, "key2" to 2, "key3" to 3) val map2 = mapOf<String, Char>("key1" to '1', "key2" to '2', "key3" to '3') println(map1) // {key1=1, key2=2, key3=3} }
- Kotlin์์๋ mapOf() ํจ์๋ฅผ ํตํด์ ์ฝ๊ฒ map์ ์์ฑํ ์ ์์ต๋๋ค.
- map์ ๊ฐ์ Key์ value๊ฐ ๊ตฌ๋ณ๋์ด์ผ ํ๊ณ to๋ฅผ ํตํด์ ์ค์ ํฉ๋๋ค.
- mapOf์์ ๊ฐ์ ์ ๋ ฅํ์ง ์์ผ๋ฉด ํ์ ์ถ๋ก ์ด ์๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ์์ ๊ฒฝ์ฐ๋ ํ์ ์ ๊ผญ ๋ช ์ํด์ผ ํฉ๋๋ค.
mutable Map
fun main(){ val map1 = mutableMapOf<String,Int>("key1" to 1, "key2" to 2, "key3" to 3) val map2 = mutableMapOf<String, Any>("key1" to 1, "key2" to 2.2, "key3" to "3") println(map1) }
- mutableMapOf() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ณํ Map์ ์์ฑํ ์ ์์ต๋๋ค.
- Map ๋ํ Generic์ผ๋ก ์ ์๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ ํ ํ์ ๋ ์ค์ ๊ฐ๋ฅํ๋ฉฐ, ์ฌ๋ฌ ํ์ ์ ๋ฐ๊ธธ ์ํ ๊ฒฝ์ฐ ๋ชจ๋ ํ์ ์ ์์ ํด๋์ค์ธ Any ํด๋์ค๋ฅผ ์ค์ ํฉ๋๋ค.
index ์ ๊ทผ
fun main(){ val map1 = mutableMapOf<String,Int>("key1" to 1, "key2" to 2, "key3" to 3) println(map1["key1"]) // 1 println(map1.get("key2")) // 2 }
- Kotlin์์ ๋๊ดํธ ๋๋ get ํจ์๋ฅผ ํตํด์ value๋ฅผ ๊ฐ์ง๊ณ ์ฌ ์ ์์ต๋๋ค.
- ๊ฐ๋ณํ Map์ผ ๊ฒฝ์ฐ ๊ฐ์ ์ค์ ํ ์ ์๋๋ฐ ์ด ๋ํ ๋๊ดํธ์ setํจ์ ์๋๋ฉด putํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
Method
- size : Map์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๊ฐฏ์๋ฅผ ๋ฐํํ๋ ํจ์
- count() : Map์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๊ฐฏ์๋ฅผ ๋ฐํํ๋ ํจ์
size์ count()๊ฐ ์ค์ง์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค์ง๋ง ์ ํํ๊ฒ size๋ property์ด๊ณ count()๋ method์ ๋๋ค.fun main(){ val map1 = mutableMapOf<String,Int>("key1" to 1, "key2" to 2, "key3" to 3) println(map1.size) // 3 println(map1.count()) // 3 }
- keys : Map์ key๋ง ๋ด๋ ์ปฌ๋ ์ ์ ๋ฐํํ๋ ํจ์
- values : Map์ value๋ง ๋ด๋ ์ปฌ๋ ์
์ ๋ฐํํ๋ ํจ์
keys์ values์ ํฐ ์ฐจ์ด์ ์ key๋ ์๋ก ๊ฐ์ ํค๊ฐ ์กด์ฌํ ์ ์๊ณ , value๋ ๊ฐ์ ๊ฐ์ด ์กด์ฌํ ์ ์์ต๋๋ค. ์ฆ, keys๋ ๊ฐ์ ํค๊ฐ ์กด์ฌํ์ง ์์ ์ปฌ๋ ์ ์ ๋ฐํํด์ผ ํ๊ธฐ ๋๋ฌธ์ MutableSet() ๊ฐ ๋ฐํ์ด ๋๊ณ values๋ MutableCollection์ด ๋ฐํ์ด ๋ฉ๋๋ค.fun main(){ val map1 = mutableMapOf<String,Int>("key1" to 1, "key2" to 2, "key3" to 3) println(map1.keys) println(map1.values) }
- containsKey : ํด๋น ํค๊ฐ Map์ ์กด์ฌํ๋์ง ํ์ธํ๋ ํจ์
- containsValue : ํด๋น ๊ฐ์ด Map์ ์กด์ฌํ๋์ง ํ์ธํ๋ ํจ์
fun main(){ val map1 = mutableMapOf<String,Int>("key1" to 1, "key2" to 2, "key3" to 3) println(map1.containsKey("key1")) // true println(map1.containsKey("key4")) // false println(map1.containsValue(1)) // true println(map1.containsValue(4)) // false }
- remove(key) : ํด๋น key๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ํจ์
fun main(){ val map1 = mutableMapOf<String,Int>("key1" to 1, "key2" to 2, "key3" to 3) map1.remove("key1") println(map1) // {key2=2, key3=3} }
Map ๋ณํ
toMap() : ๋ถ๋ณํ Map์ ์์ฑํด ๋ฐํํ๋ ํจ์
toMutableMap() ๊ฐ๋ณํ Map์ ์์ฑํด ๋ฐํํ๋ ํจ์
Example์ ์๋ตํ๊ฒ ์ต๋๋ค.
๋ฐ์ํ'Android > Kotlin' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin] Scope functions (let, with, run, apply, also) ์ดํด (0) 2021.11.08 [Kotlin] Set ์ฌ์ฉ๋ฒ (0) 2021.08.13 [Kotlin] List ์ฌ์ฉ๋ฒ (0) 2021.08.12 [Kotlin] String ์ฌ์ฉ๋ฒ (0) 2021.08.12 [Kotlin] Array ์ฌ์ฉ๋ฒ (0) 2021.08.12