코틀린에서는 다양한 컬렉션 변환 함수를 제공하여 하나의 컬렉션을 다른 형태로 변환할 수 있습니다. 이러한 변환은 자주 사용되며, 적절하게 활용하면 코드를 간결하게 만들 수 있습니다.
1. toList() 함수
다른 컬렉션을 리스트로 변환합니다.
val setOfNumbers = setOf(1, 2, 3, 4, 5)
val listOfNumbers = setOfNumbers.toList()
// 결과: listOfNumbers = [1, 2, 3, 4, 5]
2. toSet() 함수
다른 컬렉션을 세트로 변환합니다.
val listOfNumbers = listOf(1, 2, 3, 4, 5)
val setOfNumbers = listOfNumbers.toSet()
// 결과: setOfNumbers = [1, 2, 3, 4, 5]
3. toMutableList() 함수
다른 컬렉션을 변경 가능한 리스트로 변환합니다.
val listOfNumbers = listOf(1, 2, 3, 4, 5)
val mutableList = listOfNumbers.toMutableList()
// 결과: mutableList = [1, 2, 3, 4, 5]
4. toMutableSet() 함수
다른 컬렉션을 변경 가능한 세트로 변환합니다.
val listOfNumbers = listOf(1, 2, 3, 4, 5)
val mutableSet = listOfNumbers.toMutableSet()
// 결과: mutableSet = [1, 2, 3, 4, 5]
5. toMap() 함수
Pair의 리스트나 다른 맵을 사용하여 다른 컬렉션을 맵으로 변환합니다.
val pairs = listOf("one" to 1, "two" to 2, "three" to 3)
val map = pairs.toMap()
// 결과: map = {one=1, two=2, three=3}
6. toMutableMap() 함수
다른 맵이나 Pair의 리스트를 사용하여 변경 가능한 맵으로 변환합니다.
val map = mapOf("one" to 1, "two" to 2, "three" to 3)
val mutableMap = map.toMutableMap()
// 결과: mutableMap = {one=1, two=2, three=3}
7. asSequence() 함수
컬렉션을 시퀀스로 변환합니다. 시퀀스는 지연 계산을 통해 효율적인 연산을 제공합니다.
val listOfNumbers = listOf(1, 2, 3, 4, 5)
val sequenceOfNumbers = listOfNumbers.asSequence()
// 결과: sequenceOfNumbers = Sequence{1, 2, 3, 4, 5}
8. asIterable() 함수
컬렉션을 Iterable로 변환합니다.
val listOfNumbers = listOf(1, 2, 3, 4, 5)
val iterableOfNumbers: Iterable<Int> = listOfNumbers.asIterable()
// 결과: iterableOfNumbers = [1, 2, 3, 4, 5]
9. flatMap() 함수
컬렉션의 각 요소에 대해 변환 함수를 적용하고 결과를 평탄화하여 새로운 컬렉션을 생성합니다.
val nestedList = listOf(listOf(1, 2), listOf(3, 4), listOf(5, 6))
val flatList = nestedList.flatMap { it }
// 결과: flatList = [1, 2, 3, 4, 5, 6]
10. distinct() 함수
컬렉션 내에서 중복된 요소를 제거한 새로운 컬렉션을 생성합니다.
val listOfNumbers = listOf(1, 2, 2, 3, 4, 4, 5)
val distinctNumbers = listOfNumbers.distinct()
// 결과: distinctNumbers = [1, 2, 3, 4, 5]
이러한 함수들을 적절히 사용하여 컬렉션을 필요한 형태로 변환할 수 있습니다. 변환은 코드의 가독성과 효율성을 높이는 데에 중요한 역할을 합니다.
With ChatGPT
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 컬렉션 순서 (0) | 2024.01.01 |
---|---|
코틀린 하위 컬렉션 추출 (0) | 2024.01.01 |
코틀린 컬렉션 걸러내기 (0) | 2024.01.01 |
코틀린 컬렉션 집계 (0) | 2024.01.01 |
코틀린 컬렉션 조건 검사 (0) | 2024.01.01 |