Kotlin Map, MutableMap 추가, 삭제, 프로퍼티
Notepad96
·2020. 11. 23. 22:47
1. Map, MutableMap
Map과 MutableMap 또한 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. 참 조
'Kotlin > Collections' 카테고리의 다른 글
Kotlin filter - 조건에 맞는 원소 검색 (0) | 2020.11.24 |
---|---|
Kotlin sort map by value - 맵 값(Value)으로 정렬 (0) | 2020.11.24 |
Kotlin set 합집합, 차집합, 교집합 - union, subtract, intersect (0) | 2020.11.23 |
Kotlin Set, MutableSet 추가, 삭제, 프로퍼티 (0) | 2020.11.22 |
Kotlin list for문 - index loop (0) | 2020.11.22 |