Kotlin/포스팅

코틀린 스트림 유틸리티

짜집퍼박사(짜박) 2024. 1. 1. 23:25

Kotlin 표준 라이브러리에는 스트림을 처리하는데 유용한 많은 확장 함수 및 유틸리티 함수가 포함되어 있습니다. 이러한 함수들은 컬렉션 처리, 스트림 변환, 필터링, 매핑 등 다양한 작업을 수행할 수 있습니다. 아래에서 몇 가지 주요한 유틸리티 함수를 살펴보겠습니다.

 

1. filter() 함수

컬렉션의 요소를 필터링하는 함수입니다.

val numbers = listOf(1, 2, 3, 4, 5)

val evenNumbers = numbers.filter { it % 2 == 0 }
// 결과: evenNumbers = [2, 4]

 

2. map() 함수

컬렉션의 각 요소를 변환하는 함수입니다.

val numbers = listOf(1, 2, 3, 4, 5)

val squaredNumbers = numbers.map { it * it }
// 결과: squaredNumbers = [1, 4, 9, 16, 25]

 

3. 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]

 

4. forEach() 함수

컬렉션의 각 요소에 대해 주어진 동작을 수행하는 함수입니다.

val numbers = listOf(1, 2, 3, 4, 5)

numbers.forEach { println(it) }
// 결과: 1, 2, 3, 4, 5가 각 줄에 출력됨

 

5. reduce() 함수

컬렉션의 요소를 순서대로 결합하여 최종 결과를 생성하는 함수입니다.

val numbers = listOf(1, 2, 3, 4, 5)

val product = numbers.reduce { acc, number -> acc * number }
// 결과: product = 120

 

6. fold() 함수

reduce와 유사하지만 초기값을 지정할 수 있습니다.

val numbers = listOf(1, 2, 3, 4, 5)

val product = numbers.fold(1) { acc, number -> acc * number }
// 결과: product = 120

 

7. groupBy() 함수

주어진 키에 따라 컬렉션을 그룹화하는 함수입니다.

val words = listOf("apple", "banana", "orange")

val groupedByLength = words.groupBy { it.length }
// 결과: {5=["apple"], 6=["banana", "orange"]}

 

8. distinct() 함수

컬렉션 내에서 중복된 요소를 제거한 새로운 컬렉션을 생성하는 함수입니다.

val numbers = listOf(1, 2, 2, 3, 4, 4, 5)

val distinctNumbers = numbers.distinct()
// 결과: distinctNumbers = [1, 2, 3, 4, 5]

 

9. sorted() 함수

컬렉션을 정렬하는 함수입니다.

val numbers = listOf(5, 3, 1, 4, 2)

val sortedNumbers = numbers.sorted()
// 결과: sortedNumbers = [1, 2, 3, 4, 5]

 

10. zip() 함수

두 개의 컬렉션을 순서대로 조합하여 새로운 컬렉션을 생성하는 함수입니다.

val letters = listOf("a", "b", "c")
val numbers = listOf(1, 2, 3)

val zippedList = letters.zip(numbers)
// 결과: zippedList = [("a", 1), ("b", 2), ("c", 3)]

이러한 함수들은 Kotlin의 표준 라이브러리에서 제공되며, 컬렉션을 효과적으로 다루고 처리할 수 있도록 도와줍니다. 필요에 따라 이러한 함수들을 적절히 활용하여 코드를 간결하게 작성할 수 있습니다.

 

With ChatGPT

'Kotlin > 포스팅' 카테고리의 다른 글

코틀린 URL 유틸리티  (0) 2024.01.01
코틀린 스트림 생성  (0) 2024.01.01
코틀린 파일과 I/O 스트림  (0) 2024.01.01
코틀린 컬렉션 순서  (0) 2024.01.01
코틀린 하위 컬렉션 추출  (0) 2024.01.01