[Java] Stream API

[Java] Stream API

자바8에서 추가된 스트림(Streams)은 배열, 컬렉션의 저장 요소를 하나씩 참조해서 함수형 인터페이스(람다식)으로 처리할 수 있도록 해주는 반복자이다.

Iterator와 비슷한 역할을 하지만, 스트림만의 장점이 두 가지 있다.

람다식으로 요소를 처리할 수 있게 하여 코드가 더 간결하다. (불필요한 코딩 X, 직관적)

내부 반복자를 사용하므로 병렬처리가 쉽다.

스트림 사용법

스트림의 구조는 크게 3가지(스트림 생성, 중개 연산, 최종 연산)로 나뉜다. 주로 아래와 같이 사용된다.

객체 집합.스트림생성().중개연산().최종연산();

중개 연산 Filter: 조건에 맞는 것만 거름 Map: 스트림의 각 요소를 연산 Peek: Map과 유사하게 각 요소에 어떤 연산을 적용 Sorted: 스트림 요소들을 정렬

등이 있는데, 중개 연산은 모두 스트림을 반환한다.

최종 연산 Count(), min(), max(), sum(), anyMatch() 등

- 스트림은 재사용이 불가능하다.

- 병렬 스트림(parallelStream())은 여러 스레드가 작업한다.

- 중개 연산은 미리하지 않고, 최종연산이 적용될때 실행된다. (지연 연산)

출처: https://jeong-pro.tistory.com/165

from http://gokong.tistory.com/36 by ccl(A) rewrite - 2021-10-11 21:00:33