Kotlin

Map

본이qq 2022. 9. 2. 11:43

- Map : Key 와 Value 로 데이터를 관리하는 컬렉션

   mapOf : 불변형 Map을 생성합니다

   mutableMapOf : 가변형 Map 생성합니다.

 

 

// <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, Any> : 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")

 

 

-가변형과 불변형 간의 변환 

-가변형 -> 불변형 : toMap()

-불변형 -> 가변형 : toMutableMap()

val map100 = map1.toMutableMap()
map100["key100"] = 1000
println("map100 : $map100")

val map200 = map100.toMap()
//map200["key200"] = 2000

 

 

 

 

'Kotlin' 카테고리의 다른 글

Set  (0) 2022.09.02
List  (0) 2022.09.02
TypeCasting (형변환)  (0) 2022.09.02
Companion  (0) 2022.09.02
Interface  (0) 2022.09.02