프로그래밍 언어/코틀린

코틀린 22. 맵(Map)

닉네임못짓는사람 2021. 1. 1. 03:00
반응형

이번 글에서는 map에 대해서 알아보도록 하겠습니다.

맵(Map)


map은 list, set과 함께 컬렉션 클래스를 상속받는 클래스입니다.

map은 list나 set과는 달리 조금 특이한 녀석인데, 내부에 값만을 넣는 것이 아니고

이 값과 짝을 짓는 Key와 함께 구성되는 클래스입니다.

 

파이썬을 배우신 분들이라면 dictionary와 같은 개념이라고 생각하시면 됩니다.

예를 들어 "홍길동"이라는 문자열을 map에 저장할 때, name이라는 key와 함께 저장하면

이 key를 사용해 "홍길동"이라는 value를 얻어올 수 있습니다.

이러한 key와 value를 합쳐서 하나의 '쌍'이라고 부릅니다.

 

또한 하나의 map에서 key는 고유한 값이어야 하며, 중복될 수 없습니다.

따라서 name이라는 key에 다른 값을 입력하면, 기존의 "홍길동"이라는 value는 사라지게 됩니다.

 

map도 list나 set과 마찬가지로 변경할 수 없는 그냥 map과 변경 가능한 mutableMap으로 나뉩니다.

코드를 통해 map의 사용법을 확인해봅시다.

fun main() {
    var m1 = mutableMapOf("name" to "홍길동",
                  "address" to "대한민국",
                  "age" to "20")
    println(m1["name"])
    println(m1["address"])
    println(m1["age"])
}

map에 쌍을 추가하는 방법은 key를 입력한 뒤, to를 사용해 value와 묶어주시면 됩니다.

또한 map에는 여러 개의 쌍이 들어갈 수 있으며, 각 쌍은 콤마(,)를 사용해 구분합니다.

 

이러한 map에서 value를 가져오는 방법은 배열이나 리스트에서 요소를 가져오는 것처럼

대괄호를 사용하지만, 대괄호에는 인덱스가 아닌 key가 들어가게 됩니다.

방법은 위의 코드를 보시면 m1이라는 map변수에서 key를 사용해 value를 출려하시는 것을 보시면 됩니다.

만약, 존재하지 않는 key를 입력하면 null을 반환하게 됩니다.

 

혹시 map의 key들과 value들을 각각 따로 사용하고 싶다면 keys와 values를 사용하시면 됩니다.

fun main() {
    var m1 = mutableMapOf("name" to "홍길동",
                  "address" to "대한민국",
                  "age" to "20")
    println(m1.keys)
    println(m1.values)
} 

map관련 함수


그럼 이제 map에서 사용할 수 있는 함수에 대해서 알아봅시다.

1. put : map에 새로운 쌍을 추가하는 함수입니다.

fun main() {
    var m1 = mutableMapOf("name" to "홍길동",
                  "address" to "대한민국",
                  "age" to "20")
    m1.put("height", "175")
    println(m1)
} 

2. get : key에 대응되는 value를 반환하는 함수입니다. key가 없으면 null을 반환합니다.

fun main() {
    var m1 = mutableMapOf("name" to "홍길동",
                  "address" to "대한민국",
                  "age" to "20")
    println(m1.get("name"))
    println(m1.get("qwe"))
} 

3. clear : map의 모든 쌍을 삭제합니다.

fun main() {
    var m1 = mutableMapOf("name" to "홍길동",
                  "address" to "대한민국",
                  "age" to "20")
    m1.clear()
    println(m1)
} 

4. remove : key와 그에 대응되는 value의 한 쌍을 삭제합니다.

fun main() {
    var m1 = mutableMapOf("name" to "홍길동",
                  "address" to "대한민국",
                  "age" to "20")
    m1.remove("name")
    println(m1)
} 

이외에 더 많은 map관련 함수를 알고 싶으신 분들은 아래의 링크로 가 주시길 바랍니다.

kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/

 

MutableMap - Kotlin Programming Language

 

kotlinlang.org

이번 글은 이 정도로 마치도록 하겠습니다.

감사합니다.

반응형

'프로그래밍 언어 > 코틀린' 카테고리의 다른 글

코틀린 24. 스코프함수  (0) 2021.01.06
코틀린 23. 고차함수, 람다함수  (0) 2021.01.05
코틀린 21. 셋(Set)  (0) 2020.12.30
코틀린 20. 리스트(List)  (0) 2020.12.28
코틀린 19. 접근제한자  (0) 2020.12.28