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에 대한 자세한 내용을 확인하시고 싶으시면 아래 링크를 참고해주시면 감사하겠습니다.
'Kotlin' 카테고리의 다른 글
[Kotlin] when (0) | 2022.06.22 |
---|---|
[Kotlin] val, var 관하여 (0) | 2022.06.22 |
댓글