Kotlin

[Kotlin] Map

hvoon 2022. 9. 14. 16:20

Map : Key 와 Value 로 데이터를 관리하는 컬렉션

-mapOf : 불변형 Map을 생성

-mutableMapOf : 가변형 Map을 생성

fun main(){
    // <String, Int> : String-key 값의 자료형    Int-value 값의 자료형
    val map1 = mapOf<String, Int>("key1" to 10, "key2" to 20, "key3" to 30)
    println("map1 : $map1")
    
    val map2 = mutableMapOf<String, Int>()
    println("map2 : $map2")
    
    // <String, Int> : String-key 값의 자료형    Any-value 값의 자료형
    val map3 = mapOf<String, Any>("key1" to 10, "key2" to 11.11, "key3" to true)
    println("map3 : $map3")
}
 
 
맵의 자료에 접근하는 방법

- get : 이름을 통해 객체 추출 가능
- Kotlin의 Map은 [ ] 사용 가능

    println("map1 key1 : ${map1.get("key1")}")
    println("map1 key2 : ${map1["key2"]}")
 
 
기타 메서드

- size : 관리하는 요소의 개수

- keys : key를 배열로 반환

- values : 객체들을 배열로 반환

- containsKey : 지정된 이름으로 저장된 객체가 있는지 확인

- containsValue : 지정된 값으로 저장된 객체가 있는지 확인

    println("map1 size : ${map1.size}")
    println("map1 keys : ${map1.keys}")
    println("map1 values : ${map1.values}")
    println("map1 contains key1 : ${map1.containsKey("key1")}")
    println("map1 contains key100 : ${map1.containsKey("key100")}")
    println("map1 contains value 10 : ${map1.containsValue(10)}")
    println("map1 contains value 100 : ${map1.containsValue(100)}")

 

가변형 MAP 에 요소 추가 삭제

- put : 객체를 추가한다. 기존 이름과 동일할 경우 덮어 씌움

- remove : 주어진 이름으로 저장된 객체를 제거

    map2.put("key1", 100)  // 키값과 밸류값을 제공하여 추가
    println("map2 : $map2")
    map2["key2"] = 200  // 키값을 인데스와 같이 사용하여 추가
    println("map2 : $map2")
    map2.put("key1", 1000)  // 이미 존재하는 키값으로 요소를 추가하면 해당 밸류값이 수정됨
    map2["key2"] = 2000  // 이미 존재하는 키값으로 요소를 추가하면 해당 밸류값이 수정됨
    println("map2 : $map2")
    map2.remove("key1")
    println("map2 : $map2")
 

 

가변형과 불변형간의 변환

    val map100 = map1.toMutableMap()
    map100["key100"] = 1000
    println("map100 : $map100")
    val map200 = map100.toMap()
    //map200["key200"] = 2000