코틀린에서 컬렉션은 여러 요소를 담는 자료 구조를 의미합니다. 코틀린 표준 라이브러리에서는 다양한 종류의 컬렉션을 제공하고 있으며, 이들은 변경 가능한(Mutable)과 변경 불가능한(Immutable) 두 가지 범주로 나눌 수 있습니다.
변경 가능한 컬렉션
1. List (MutableList)
순서가 있는 요소의 리스트입니다. 중복된 요소를 허용합니다.
val mutableList: MutableList<String> = mutableListOf("apple", "banana", "orange")
2. Set (MutableSet)
중복을 허용하지 않는 순서 없는 요소의 집합입니다.
val mutableSet: MutableSet<String> = mutableSetOf("apple", "banana", "orange")
3. Map (MutableMap)
키와 값으로 이뤄진 쌍의 맵입니다.
val mutableMap: MutableMap<String, Int> = mutableMapOf("apple" to 1, "banana" to 2, "orange" to 3)
변경 불가능한 컬렉션
1. List (List)
변경 불가능한 리스트입니다.
val immutableList: List<String> = listOf("apple", "banana", "orange")
2. Set (Set)
변경 불가능한 집합입니다.
val immutableSet: Set<String> = setOf("apple", "banana", "orange")
3. Map (Map)
변경 불가능한 맵입니다.
val immutableMap: Map<String, Int> = mapOf("apple" to 1, "banana" to 2, "orange" to 3)
컬렉션 확장 함수
코틀린 표준 라이브러리는 다양한 컬렉션 함수를 제공하여 편리한 데이터 처리를 지원합니다.
1. Filter
조건을 만족하는 요소만 걸러내는 함수입니다.
val filteredList = mutableList.filter { it.startsWith("a") }
2. Map
각 요소에 대해 주어진 람다 함수를 적용하여 새로운 컬렉션을 생성하는 함수입니다.
val mappedList = mutableList.map { it.toUpperCase() }
3. Sort
요소를 정렬하는 함수입니다.
val sortedList = mutableList.sorted()
4. GroupBy
주어진 키에 따라 요소를 그룹화하여 맵을 생성하는 함수입니다.
val groupedMap = mutableList.groupBy { it.length }
5. Reduce
요소를 하나의 값으로 줄여주는 함수입니다.
val sum = mutableList.reduce { acc, element -> acc + element.length }
컬렉션 타입의 선택
컬렉션을 선택할 때는 사용 사례와 요구 사항에 따라 적절한 변경 가능한 또는 변경 불가능한 타입을 선택하는 것이 중요합니다. 변경 불가능한 컬렉션은 불변성을 제공하여 예측 가능하고 안전한 코드를 작성할 수 있도록 도와줍니다. 변경 가능한 컬렉션은 데이터를 동적으로 조작해야 하는 경우에 유용합니다.
더불어, 코틀린에서는 sequence라는 개념도 제공하고 있으며, 이는 게으른(lazy) 컬렉션 처리를 위한 기능을 제공합니다. 게으른 컬렉션은 필요한 시점에만 요소를 계산하므로 성능 향상에 도움이 될 수 있습니다.
With ChatGPT
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 Comparator 인터페이스 (0) | 2023.12.31 |
---|---|
코틀린 Comparable 인터페이스 (0) | 2023.12.31 |
코틀린 부호 없는 정수 (0) | 2023.12.31 |
코틀린 인라인 클래스 정의 (0) | 2023.12.31 |
코틀린 구조 분해 선언 (0) | 2023.12.31 |