Coding Memo

Kotlin map (Collections) 본문

Language/Kotlin

Kotlin map (Collections)

minttea25 2021. 1. 11. 12:36

map 은 key에 대한 value를 1:1로 가지고 있는 집합이다.

맵에 key를 검색하면 value가 나온다.

 

interface Map<K, out v>

interface MutableMap<K, V> : Map<K, V>

 

K는 키이고, V는 value이다.

 

key와 value 값을 바로 줄 때는 'to'를 이용한다. (key to value)

ex) var m: MutableMap<String, String> = mutableMapOf("Korea" to "Seoul")


put

 

abstract fun put(key: K, value: V): V?

 

map에 key와 value를 가진 아이템을 추가한다.

주의: list와 set은 add 였지만 map은 put이다!

 

참고: 위 함수는 map[key] = value와 같은 기능을 가진다.


remove

 

abstract fun remove(key: K): V?

open fun remove(key: K, value: V): Boolean

 

위에 함수는 key 값을 가진 아이템을 삭제한다.

아래 함수는 key와 value 값을 가진 아이템을 삭제하는데, key와 value가 모두 일치하지 않으면 삭제하지 않는다.

올바르게 삭제를 성공하였을 경우 true, 그렇지 않으면 false를 반환한다.


fun main() {
    var m: MutableMap<String, String> = mutableMapOf("Korea" to "Seoul",
        "Japan" to "Tokyo", "United Kingdom" to "London", "China" to "Beijing")
    println("original map: $m")

    //m.put("United States", "Washington D.C.") 와 같다.
    m["United States"] = "Washington D.C."
    println("after putting US: $m")

    m.remove("China")
    println("after removing key - China: $m")

    println(m.remove("Korea", "Seou"))
    println("after removing key - value: $m")
}

map 예시 출력 결과


keys

 

abstract val keys: Set<K>

abstract val keys: MutableSet<K>

 

map에 있는 key의 값들을 set으로 반환하는 함수이다.


values

 

abstract val values: Collections<V>

abstract val values: MutableCollection<V>

 

map에 있는 value들의 값들을 Collections으로 반환하는 함수이다.


fun main() {
    var m: MutableMap<String, String> = mutableMapOf("Korea" to "Seoul",
        "Japan" to "Tokyo", "United Kingdom" to "London")
    println("original map: $m")

    println("key set")
    println(m.keys)

    println("value collection")
    println(m.values)
}

keys values 예시 출력 결과

'Language > Kotlin' 카테고리의 다른 글

Kotlin Set (Collections)  (0) 2021.01.11
Kotlin 리스트 (Collections)  (0) 2021.01.10
Kotlin 데이터 클래스  (0) 2021.01.08
Kotlin 열거형 클래스  (0) 2021.01.08
Kotlin 중첩 / 내부 클래스  (0) 2021.01.08