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