본문 바로가기
Kotlin

[Kotlin] Map

by 열정적인 이찬형 2022. 9. 19.

Map

kotlin.collection에 포함된 인터페이스이며 키-값(Key - Value)가 하나의 쌍을 이루는 저장 방식을 이용합니다.

 

Kotlin에서는 map에 대하여 수정 여부에 따라 다르게 인터페이스를 제공하고 있습니다.

 

  수정 불가능 수정 가능
Map kotlin.collections.Map kotlin.collections.MutableMap

 

※만약 Kotlin과 Java를 혼용하여 사용하시는 경우 Java에서는 Map, MutableMap을 모두 java.util.Map의 형태로 변환하기 때문에 모두 수정이 가능합니다.

 

일반적으로 Map으로 선언하시고 사용하실 경우 kotlin.collections.Map을 선언하시는 것으로 생성하신 뒤에는 수정이 불가능합니다.

//kotlin.collections.Map 선언
val map : Map<String, Int> = mapOf(Pair("one", 1), Pair("two", 2))

//map.get("one")과 동일
val value : Int = map["one"]

//map.put("one", 3)과 동일
//Map은 수정이 불가능하므로 해당 코드는 에러 발생!
map["one"] = 3

※Java에서는 get(), put() 사용였지만 Kotlin에서는 []을 사용하여 해당 Key값에 접근하실 수 있습니다.

 

Map안에 속하는 클래스로 자주 사용하는 TreeMap, HashMap 등이 존재하며 모두 kotlin.collections.mutableMap을 상속하고 있습니다.

 

kotlin.collections.mutableMap을 상속하는 클래스들을 사용하면 Map으로 선언했을 때와는 달리 생성하신 뒤 수정이 가능합니다.

//kotlin.collections.HashMap 선언
val map : HashMap<String, Int> = hashMapOf(Pair("one", 1), Pair("two", 2))

//map.put("one", 3)과 동일
//HashMap은 수정 성공!
map["one"] = 3

 

 

 

맵에 생성하는 함수들은 키와 값을 인자로 받기 위해서 Pair클래스를 사용합니다.

Kotlin에서 제공하는 to 함수를 사용하면 더 편리하게 생성도 가능하십니다.

//HashMap 선언시 Pair 클래스 사용
val map : HashMap<String, Int> = hashMapOf(Pair("one", 1), Pair("two", 2))

//HashMap 선언시 to 함수 사용
val map : HashMap<String, Int> = hashMapOf("one" to 1, "two" to 2)

 

Methods

containsKey(key) Key 존재 유무 확인 및 반환(존재 : true, 미존재 : false)
containsValue(value) Value 존재 유무 확인 및 반환(존재 : true, 미존재 : false)
get(key) Key에 해당하는 Value 반환
getOrDefault(key, defaultValue) Key 존재시 해당 Value 반환, 미존재시 DefaultValue 반환
isEmpty() Map이 비어있는지 확인
filter() Filter에 만족하는 Map에 값만 반환
isNotEmpty() Map이 비어있지 않은지 확인
....  

 

더 많은 Methods에 대한 자세한 내용을 확인하시고 싶으시면 아래 링크를 참고해주시면 감사하겠습니다.

 

Map - Kotlin Programming Language

 

kotlinlang.org

 

'Kotlin' 카테고리의 다른 글

[Kotlin] when  (0) 2022.06.22
[Kotlin] val, var 관하여  (0) 2022.06.22

댓글