Kotlin Map, MutableMap 추가, 삭제, 프로퍼티

Notepad96

·

2020. 11. 23. 22:47

300x250

 

 

 

 


1. Map, MutableMap

 

MapMutableMap 또한 List와 MutableList의 관계처럼 불변과 가변의 차이를 갖는다.

 

 

 

Map을 상속받는 MutableMap

public interface MutableMap<K, V> : Map<K, V> {
    ...
}

 

Map은 Key/Value의 데이터를 저장하는 구조이다.

 

 

여기서 Value의 값들은 중복된 값들이 존재할 수도 있지만 Key값은 Set과 같이 고유한 값만을 갖는다.

 

 

 

 

 


2. 코 드

환경 : Kotlin Version = 1.4.10, JVM

fun main(args : Array<String>) {

    // val mm = mutableMapOf<Int, String>()
    val mm = mutableMapOf(1 to "z", 2 to "y", Pair(3, "x"))

    println("=============M A P================")
    println(mm)



    println("=============삽 입================")
    mm[5] = "v"
    mm.put(4, "w")
    mm[1] = "x"

    for(i in mm) {
        // if(i is MutableMap.MutableEntry<Int, String>)    // i의 타입
        print("${i.key}:${i.value} ")
    }
    println()



    println("=============삭 제================")
    println(mm.remove(5))   // key 5인 쌍 삭제하며 value 값 반환
    println(mm.remove(4, "w"))  // key=4, value="w" 이 존재하면 삭제, 성공하면 true 아니면 false

    for((k, v) in mm) {
        print("${k}:${v} ")
    }
    println()



    println("=============프로퍼티================")
    println("Size = ${mm.size}")
    println(mm.entries) // 키 + 값 MutableMap.MutableEntry<Int, String>
    println(mm.keys)    // 키들만  MutableSet<K>
    println(mm.values)  // 값들만  MutableCollection<V>



    println("=============정 렬================")
    //val mm2 = mm.toSortedMap(compareBy {it} )   // Key 오름차순
    val mm2 = mm.toSortedMap(compareByDescending {it} )   // Key 내림차순
    mm2.forEach{ (k, v) -> print("${k}:${v} ") }
    println()

}

 

결 과

 

- Map 또한 Set처럼 생성자가 존재하지 않는다.

 

따라서 빈 Map을 생성하고자 한다면 mutableMapOf를 사용할 때 타입을 명시해주면 된다.

 

 

 

 

- Map에서는 삽입하기 위해서는 '[]' 를 사용하거나 put 함수를 사용할 수 있다.

 

'[]' 연산자를 사용하는 것이 더욱 간편하고 선호된다.

 

 

 

 

- 삭제하기 위해서는 remove 함수를 사용한다.

 

 

인수로 Key 값만을 주어서 해당하는 키/값 쌍을 삭제할 수 있으며, 이 때 값(Value)를 반환해준다.

 

 

인수로 Key, Value 값을 주면 해당 Key와 Value에 일치하는 원소가 있다면 삭제 한후 true를 반환하며 존재하지 않는다면 false 반환해준다.

 

 

 

 

- 프로퍼티로는

 

entries : Key + Value

 

keys : Key

 

values : Value

 

존재하며 각 프로퍼티의 반환 타입은 코드 주석을 참조하면 된다.

 

 

 

- toSortedMap 함수를 사용하여서 Key값을 기준으로 정렬을 해줄 수 있다.

 

 

 

 


3. 참 조

 

 

MutableMap - Kotlin Programming Language

 

kotlinlang.org

 

300x250