코틀린은 자바와의 상호 운용성이 뛰어나기로 유명합니다. 코틀린으로 개발한 프로젝트에서 자바 라이브러리나 API를 사용해야 할 때가 있습니다. 이러한 상황에서 자바 스트림을 효과적으로 처리해야 할 필요가 있을 수 있습니다. 이번 블로그에서는 코틀린에서 자바의 스트림을 어떻게 처리할 수 있는지에 대해 알아보겠습니다.
1. 자바 스트림 생성하기
먼저, 자바 스트림을 생성하는 방법에 대해 알아보겠습니다.
val numbers = listOf(1, 2, 3, 4, 5)
val stream = numbers.stream()
위 예제에서는 listOf
함수를 사용하여 리스트를 생성하고, stream
메서드를 호출하여 해당 리스트를 스트림으로 변환하였습니다.
2. 중간 연산 수행하기
스트림에 중간 연산을 수행하는 방법을 살펴보겠습니다.
val result = numbers.stream()
.filter { it > 2 }
.map { it * 2 }
.collect(Collectors.toList())
위 코드에서는 filter
함수를 사용하여 조건에 맞는 요소를 필터링하고, map
함수를 사용하여 각 요소에 대해 연산을 수행한 후, collect
함수를 사용하여 최종 결과를 리스트로 수집하였습니다.
3. 최종 연산 수행하기
스트림에 최종 연산을 수행하는 방법을 살펴보겠습니다.
val sum = numbers.stream()
.reduce { acc, ele -> acc + ele }
.get()
위 코드에서는 reduce
함수를 사용하여 모든 요소를 결합하였고, get
메서드를 호출하여 최종 결과를 얻었습니다.
4. 병렬 스트림 처리하기
코틀린에서 자바의 병렬 스트림을 처리하는 방법에 대해 알아보겠습니다.
val sum = numbers.parallelStream()
.reduce { acc, ele -> acc + ele }
.get()
위 코드에서는 parallelStream
함수를 사용하여 병렬 스트림을 생성하고, 이후 동일하게 reduce
함수를 사용하여 최종 결과를 얻었습니다.
코틀린에서도 자바의 스트림을 효과적으로 처리할 수 있습니다. 여기서는 간단한 예제를 통해 스트림을 생성하고, 중간 및 최종 연산을 수행하는 방법에 대해 살펴보았습니다. 코틀린과 자바와의 원활한 상호 운용성을 활용하여 다양한 라이브러리와 API를 유연하게 활용할 수 있습니다.