Kotlin 컬렉션과 배열 (Collections and Arrays in Kotlin)
컬렉션 (Collections)
Kotlin은 다양한 컬렉션 타입을 제공하며, 크게 리스트(List), 집합(Set), 맵(Map)으로 나눌 수 있습니다.
리스트 (List)
리스트는 순서가 있는 요소들의 모음입니다. List는 불변 리스트이고, MutableList는 가변 리스트입니다.
리스트 예제:
val immutableList: List<String> = listOf("Apple", "Banana", "Cherry")
val mutableList: MutableList<String> = mutableListOf("Apple", "Banana", "Cherry")
fun main() {
// 불변 리스트
println(immutableList) // 출력: [Apple, Banana, Cherry]
// 가변 리스트에 요소 추가
mutableList.add("Date")
println(mutableList) // 출력: [Apple, Banana, Cherry, Date]
}
집합 (Set)
집합은 순서가 없고 중복을 허용하지 않는 요소들의 모음입니다. Set은 불변 집합이고, MutableSet은 가변 집합입니다.
집합 예제:
val immutableSet: Set<String> = setOf("Apple", "Banana", "Cherry")
val mutableSet: MutableSet<String> = mutableSetOf("Apple", "Banana", "Cherry")
fun main() {
// 불변 집합
println(immutableSet) // 출력: [Apple, Banana, Cherry]
// 가변 집합에 요소 추가
mutableSet.add("Date")
println(mutableSet) // 출력: [Apple, Banana, Cherry, Date]
}
맵 (Map)
맵은 키-값 쌍으로 이루어진 컬렉션입니다. Map은 불변 맵이고, MutableMap은 가변 맵입니다.
맵 예제:
val immutableMap: Map<String, Int> = mapOf("Apple" to 1, "Banana" to 2, "Cherry" to 3)
val mutableMap: MutableMap<String, Int> = mutableMapOf("Apple" to 1, "Banana" to 2, "Cherry" to 3)
fun main() {
// 불변 맵
println(immutableMap) // 출력: {Apple=1, Banana=2, Cherry=3}
// 가변 맵에 요소 추가
mutableMap["Date"] = 4
println(mutableMap) // 출력: {Apple=1, Banana=2, Cherry=3, Date=4}
}
배열 (Arrays)
Kotlin에서 배열은 Array 클래스를 사용하여 정의합니다. 배열은 고정된 크기를 가지며, 동일한 타입의 요소를 포함합니다.
배열 예제:
val numbers: Array<Int> = arrayOf(1, 2, 3, 4, 5)
fun main() {
// 배열 요소 접근
println(numbers[0]) // 출력: 1
// 배열 요소 변경
numbers[0] = 10
println(numbers[0]) // 출력: 10
// 배열 순회
for (num in numbers) {
println(num)
}
}
컬렉션 함수 (Collection Functions)
Kotlin은 컬렉션을 쉽게 다룰 수 있도록 다양한 유틸리티 함수를 제공합니다.
컬렉션 함수 예제:
val numbers = listOf(1, 2, 3, 4, 5)
fun main() {
// filter: 조건에 맞는 요소를 필터링
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers) // 출력: [2, 4]
// map: 각 요소에 함수를 적용
val doubled = numbers.map { it * 2 }
println(doubled) // 출력: [2, 4, 6, 8, 10]
// reduce: 요소들을 축소하여 단일 값 생성
val sum = numbers.reduce { acc, num -> acc + num }
println(sum) // 출력: 15
}
Kotlin의 컬렉션과 배열을 이해하고 활용하면 데이터를 더욱 효율적으로 관리하고 처리할 수 있습니다.
