Map은 키-값 쌍으로 데이터를 저장하는 컬렉션이다.
수정 불가한 Map
mapOf()를 사용하면 map을 수정할 수 없다.
val map = mapOf("FIRST" to 1, "SECOND" to 2)
map["FIRST"] = 2 // 컴파일 에러 발생🚨
수정 가능한 Map
mutableMapOf()을 사용하면 map을 수정할 수 있다.
val map = mutableMapOf("FIRST" to 0, "SECOND" to 2)
map["FIRST"] = 1 // value 수정
map["THIRD"] = 3 // 새 키-값 추가
키로 직접 대입하기
map["THIRD"] = 3
put() 사용
map.put("THIRD", 3)
key로 조회하기
val value = map["FIRST"]
key가 존재하지 않으면 null이 나올 수 있기 때문에 안전하게 조회하기 위해서는 getOrDefault()를 사용한다
getOrDefault()
val value = map.getOrDefault("FIRST", 1)
map.containsKey("FIRST") // key로 찾기
map.containsValue(1) // value로 찾기
key, value
for((key, value) in map) {
println("$key: $value")
}
key
for(key in map.keys) {
println("$key")
}
value
for(value in map.values) {
println("$value")
}
코틀린 정.말. 어렵당.. 너무 까다로운 언어야.. mapOf()를 사용하면 수정할 수 없고, mutableMapOf()를 써야 수정 가능하다는게 정말..😖😖😖 이렇게 읽기 전용, 수정 전용이 있는 이유를 알고 싶어서 구글링 해봤는데.. 아직 이해가 잘 안 된다. 내일 한 번 더 찾아보고 정리를 해봐야할 것 같다. sqld 시험이 다가와서 여기에 집중하느라 신경을 못 썼는데 그래도 결과물 하나라도 내려구 열심히 노력중