반응형
Kotlin에서 컬렉션 타입(Collection Types)은 데이터를 구조화하고 관리하는 데 사용됩니다. Kotlin은 다양한 컬렉션 타입을 제공하며, 이들은 크게 읽기 전용과 변경 가능한 컬렉션으로 나뉩니다. 주요 컬렉션 타입에는 리스트(List), 셋(Set), 맵(Map)이 있습니다. 각 타입은 특정한 데이터 관리 요구 사항을 충족합니다.
아래에서는 각 컬렉션 타입의 사용 예제를 통해 자세히 설명하겠습니다.
1. 리스트 (Lists)
리스트는 순서가 있는 요소들의 집합입니다. Kotlin에서는 읽기 전용 리스트와 변경 가능한 리스트를 지원합니다.
읽기 전용 리스트 (Read-only List)
- 읽기 전용 리스트는 요소를 추가하거나 제거할 수 없습니다.
listOf()
함수를 사용하여 생성합니다.
fun main() {
val readOnlyList: List<String> = listOf("Kotlin", "Java", "Python")
// 리스트의 요소 접근
println(readOnlyList[0]) // 출력: Kotlin
println(readOnlyList.get(1)) // 출력: Java
// 리스트의 길이
println(readOnlyList.size) // 출력: 3
// 리스트의 순회
for (item in readOnlyList) {
println(item)
}
// 출력:
// Kotlin
// Java
// Python
// 요소가 포함되어 있는지 확인
println("Java" in readOnlyList) // 출력: true
}
변경 가능한 리스트 (Mutable List)
- 변경 가능한 리스트는 요소를 추가하거나 제거할 수 있습니다.
mutableListOf()
함수를 사용하여 생성합니다.
fun main() {
val mutableList: MutableList<String> = mutableListOf("Kotlin", "Java", "Python")
// 요소 추가
mutableList.add("C++")
println(mutableList) // 출력: [Kotlin, Java, Python, C++]
// 특정 위치에 요소 추가
mutableList.add(1, "JavaScript")
println(mutableList) // 출력: [Kotlin, JavaScript, Java, Python, C++]
// 요소 제거
mutableList.remove("Java")
println(mutableList) // 출력: [Kotlin, JavaScript, Python, C++]
// 특정 위치의 요소 제거
mutableList.removeAt(2)
println(mutableList) // 출력: [Kotlin, JavaScript, C++]
// 요소 수정
mutableList[1] = "TypeScript"
println(mutableList) // 출력: [Kotlin, TypeScript, C++]
}
2. 셋 (Sets)
셋은 중복을 허용하지 않는 고유한 요소들의 집합입니다. Kotlin에서는 읽기 전용 셋과 변경 가능한 셋을 지원합니다.
읽기 전용 셋 (Read-only Set)
- 읽기 전용 셋은 요소를 추가하거나 제거할 수 없습니다.
setOf()
함수를 사용하여 생성합니다.
fun main() {
val readOnlySet: Set<String> = setOf("Kotlin", "Java", "Python")
// 셋의 요소 접근 (순서가 보장되지 않음)
println(readOnlySet.contains("Java")) // 출력: true
// 셋의 크기
println(readOnlySet.size) // 출력: 3
// 셋의 순회
for (item in readOnlySet) {
println(item)
}
// 출력 (순서가 보장되지 않음):
// Kotlin
// Java
// Python
}
변경 가능한 셋 (Mutable Set)
- 변경 가능한 셋은 요소를 추가하거나 제거할 수 있습니다.
mutableSetOf()
함수를 사용하여 생성합니다.
fun main() {
val mutableSet: MutableSet<String> = mutableSetOf("Kotlin", "Java", "Python")
// 요소 추가
mutableSet.add("C++")
println(mutableSet) // 출력: [Kotlin, Java, Python, C++]
// 중복 요소 추가 시도 (셋이므로 중복되지 않음)
mutableSet.add("Java")
println(mutableSet) // 출력: [Kotlin, Java, Python, C++]
// 요소 제거
mutableSet.remove("Python")
println(mutableSet) // 출력: [Kotlin, Java, C++]
// 요소 확인
println(mutableSet.contains("Kotlin")) // 출력: true
}
3. 맵 (Maps)
맵은 키-값 쌍(key-value pair)을 저장하는 컬렉션입니다. 각 키는 고유하며, 각 키에 대해 하나의 값이 매핑됩니다. Kotlin에서는 읽기 전용 맵과 변경 가능한 맵을 지원합니다.
읽기 전용 맵 (Read-only Map)
- 읽기 전용 맵은 키-값 쌍을 추가하거나 제거할 수 없습니다.
mapOf()
함수를 사용하여 생성합니다.
fun main() {
val readOnlyMap: Map<String, Int> = mapOf("Kotlin" to 1, "Java" to 2, "Python" to 3)
// 키를 사용하여 값 접근
println(readOnlyMap["Kotlin"]) // 출력: 1
// 맵의 크기
println(readOnlyMap.size) // 출력: 3
// 모든 키와 값의 순회
for ((key, value) in readOnlyMap) {
println("$key -> $value")
}
// 출력:
// Kotlin -> 1
// Java -> 2
// Python -> 3
}
변경 가능한 맵 (Mutable Map)
- 변경 가능한 맵은 키-값 쌍을 추가하거나 제거할 수 있습니다.
mutableMapOf()
함수를 사용하여 생성합니다.
fun main() {
val mutableMap: MutableMap<String, Int> = mutableMapOf("Kotlin" to 1, "Java" to 2)
// 키-값 쌍 추가
mutableMap["Python"] = 3
println(mutableMap) // 출력: {Kotlin=1, Java=2, Python=3}
// 특정 키의 값 수정
mutableMap["Java"] = 10
println(mutableMap) // 출력: {Kotlin=1, Java=10, Python=3}
// 키-값 쌍 제거
mutableMap.remove("Kotlin")
println(mutableMap) // 출력: {Java=10, Python=3}
// 특정 키의 값 접근
println(mutableMap["Python"]) // 출력: 3
}
요약
Kotlin의 컬렉션 타입은 데이터를 효율적으로 관리하고 조작할 수 있는 강력한 도구를 제공합니다. 각 컬렉션 타입은 읽기 전용과 변경 가능한 버전으로 나뉘며, 이는 코드의 의도를 명확히 하고 데이터의 안전성을 보장합니다. Kotlin의 리스트, 셋, 맵을 사용하면 데이터 구조를 쉽게 정의하고 필요한 연산을 간편하게 수행할 수 있습니다.
반응형
'언어 > Kotlin' 카테고리의 다른 글
[ Kotlin ] 따라하면서 조건문에 대해서 이해하자. (0) | 2024.06.12 |
---|---|
[ Kotlin ] 따라하면서 Kotlin 의 Coding Convention을 이해하자. (0) | 2024.06.12 |
[ Kotlin ] 데이터 타입의 종류는 어떤 것이 있는 알아보자. (0) | 2024.06.12 |
[ Kotlin ] 변수 사용하기 (0) | 2024.06.12 |
[ Kotlin ] Jetpack에서 지원하는 라이브러리 종류 (0) | 2024.06.12 |