Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- kotlin querydsl
- Pinpoint
- kotlin spring
- 공부
- Spring
- IntelliJ
- 코틀린 코루틴의 정석
- 정보처리기사실기 기출문제
- CloudWatch
- minikube
- CKA 기출문제
- kotlin coroutine
- 기록으로 실력을 쌓자
- kotlin
- AI
- aws
- Elasticsearch
- 정보처리기사 실기 기출문제
- 정보처리기사 실기
- 티스토리챌린지
- mysql 튜닝
- MySQL
- PETERICA
- AWS EKS
- Java
- Kubernetes
- Linux
- APM
- 오블완
- CKA
Archives
- Today
- Total
피터의 개발이야기
[Kotlin] Map 다양한 사용법 본문
반응형
ㅁ 들어가며
ㅇ Kotlin에서 Map은 키-값 쌍을 저장하는 컬렉션이다.
ㅇ Map을 사용하면 데이터를 효율적으로 관리하고 검색할 수 있다.
ㅇ 이 글에서는 Kotlin에서 Map을 생성하고 사용하는 다양한 방법을 알아본다.
ㅇ 함께 보면 좋은 사이트를 참조하여 작성하였다.
ㅁ Map 생성
// 불변 Map
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")
// 가변 Map
val mutableMap = mutableMapOf("key1" to "value1", "key2" to "value2")
// 빈 Map
val emptyMap = emptyMap<String, String>()
ㅁ Map 제거
// 생성
val map = mutableMapOf("Chocolate" to 14, "Strawberry" to 9)
// remove
map.remove("Strawberry")
// -=
map -= "Chocolate"
ㅁ Map 추가
val mutableMap = mutableMapOf<String, Int>()
// 단건 추가
mutableMap["key1"] = 1
mutableMap.put("key2", 2)
mutableMap += "key3" to 3
// 복수 추가
mutableMap.putAll(setOf("Strawberry" to 3, "Rocky Road" to 2))
mutableMap += mapOf("Maple Walnut" to 1, "Mint Chocolate" to 4)
ㅁ Map 값 가져오기
// 대괄호
val value = map["key"]
// getValue 함수
val value = map.getValue("key") // 키가 없으면 예외 발생
// getOrElse 함수
val value = map.getOrElse("key") { defaultValue }
// getOrDefault 함수
val value = map.getOrDefault("key", defaultValue)
ㅁ Map 루프문
// for
for ((key, value) in map) {
println("$key = $value")
}
// forEach
map.forEach { (key, value) ->
println("$key = $value")
}
ㅁ Map 필터링
// filter
val filteredMap = map.filter { (key, value) -> key.length > 3 && value > 10 }
// filterKeys와 filterValues
val filteredByKeys = map.filterKeys { it.length > 3 }
val filteredByValues = map.filterValues { it > 10 }
ㅁ Map 변환
// map
val transformedMap = map.map { (key, value) -> key to value.toString() }.toMap()
// mapKeys와 mapValues
val transformedKeys = map.mapKeys { it.key.toUpperCase() }
val transformedValues = map.mapValues { it.value * 2 }
ㅁ Map 데이터 가공
class shipment(
var flavor: String = "",
var quantity: Int = 0
)
// kotlin API 방법
val shipments = listOf(
shipment("Chocolate", 3),
shipment("Strawberry", 7),
shipment("Vanilla", 5),
shipment("Chocolate", 5),
shipment("Vanilla", 1),
shipment("Rocky Road", 10),
)
val shipmentInventory = mutableMapOf<String, Int>()
// for문을 이용하는 방식
for (shipment in shipments){
val currentQuantity = shipmentInventory[shipment.flavor] ?: 0
shipmentInventory[shipment.flavor] = currentQuantity + shipment.quantity
}
// groupBy 이용하는 방식 비교
val shipmenInventory2 = shipments
.groupBy({ it.flavor }, { it.quantity }) // 데이터 가공할 수 있다.
.mapValues { it.value.sum() } // 목록을 단일 합계로 줄인다.
ㅁ 마무리
ㅇ Kotlin에서 Map은 강력하고 유연한 데이터 구조다.
ㅇ 불변 Map과 가변 Map을 상황에 맞게 선택하여 사용할 수 있으며, 다양한 내장 함수를 통해 Map을 효율적으로 조작할 수 있다.
ㅇ Map을 잘 이용하여 복잡한 코딩을 쉽게 처리할 수 있어서, Kotlin에서 매우 자주 사용하게 된다.
소스는 여기에...
ㅁ 함께 보면 좋은 사이트
ㅇ Kotlin Map 다양한 사용법 (mapOf, keys, values, mapKeys, mapValues, toSortedMap, Comparator, getOrPut)
반응형
'Programming > Kotlin' 카테고리의 다른 글
[Kotlin] File들을 코드별 폴더로 압축하기 (0) | 2024.07.11 |
---|---|
[Kotlin] MutableList 기능 설명 (0) | 2024.07.10 |
[Kotlin] 코틀린 MapStruct 사용방법 (0) | 2024.07.08 |
[Ktor] Kotlin + Ktor + Eposed 환경에서 MySQL 연동하기 (0) | 2024.07.04 |
[Kotlin] ?(물음표)와 !!(느낌표 두개) (0) | 2024.06.28 |
Comments