Corgi 자바 스트림 API
본문 바로가기
코딩/자바

자바 스트림 API

by 짱아아빠 2023. 4. 30.
반응형

스트림(Stream) API는 자바 8에서 추가된 기능으로, 컬렉션(Collection)을 함수형으로 처리할 수 있도록 지원하는 API입니다. 스트림은 요소들의 집합으로, 이들을 소모(consume)하거나 조작하는데 사용할 수 있습니다.

스트림을 사용하면 다음과 같은 장점이 있습니다.

1. 간결한 코드: 람다 표현식과 함께 사용되면 매우 간결한 코드로 데이터를 처리할 수 있습니다.
2. 선언형 프로그래밍: 데이터 처리 파이프라인을 선언형으로 작성할 수 있으므로, 가독성이 좋아집니다.
3. 병렬 처리 지원: 스트림 API는 내부적으로 병렬 처리를 지원하므로, 멀티코어 환경에서 빠른 처리가 가능합니다.

스트림 API는 크게 중간 연산(intermediate operation)과 최종 연산(terminal operation)으로 구분됩니다. 중간 연산은 스트림을 반환하며, 최종 연산은 스트림을 소모하며 결과를 반환합니다.

스트림 API를 사용하여 컬렉션을 처리하는 예시 코드는 다음과 같습니다.

 

반응형


```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

int sum = numbers.stream()
                .filter(n -> n % 2 == 0)
                .map(n -> n * 2)
                .reduce(0, Integer::sum);
```

위 코드에서는 `numbers` 리스트를 스트림으로 변환한 후, `filter`, `map`, `reduce` 연산을 순서대로 적용합니다. `filter`는 짝수만을 걸러내는 중간 연산이며, `map`은 각 요소를 2배로 만드는 중간 연산입니다. 마지막으로 `reduce`는 모든 요소를 더하는 최종 연산입니다.

스트림 API는 매우 강력하며, 다양한 기능을 제공합니다. 예를 들어, `flatMap`, `sorted`, `distinct`, `skip`, `limit`, `forEach` 등의 연산이 있습니다. 스트림 API를 사용하면 컬렉션을 간결하고 효율적으로 처리할 수 있으므로, 자바 8 이상 버전에서는 적극적으로 활용하는 것이 좋습니다.

반응형

'코딩 > 자바' 카테고리의 다른 글

자바 다중 스레딩 및 동시성 프로그래밍  (0) 2023.04.30
자바 람다 표현식  (0) 2023.04.29
자바 제네릭 프로그래밍  (0) 2023.04.29

댓글