반응형

자바8의 스트림 API 특징

선언형: 더 간결하고 가독성이 좋아진다.
조립할수있음: 유연성이 좋아진다.
병렬화: 성능이 좋아진다.

스트림이란 '데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소'로 정의할 수 있다.
[딱 한번만 탐색할 수 있다]

스트림은 단 한번만 소비할 수 있다.

스트림 연산

java.util.stream.Stream 인터페이스는 많은 연산을 정의

filter, map, limit는 서로 연결되어 파이프라인을 형성한다. - 중간연산
collect로 파이프라인을 실행한 다음에 닫는다. - 최종연산

중간연산

filter나 sorted 같은 중간 연산은 다른 스트림을 반환
중간 연산의 중요한 특징은 단말 연산을 스트림 파이프라인에 실행하기 전까지는 아무 연산도 수행하지 않는다는 것이다.
즉 lazy하다는 것이다

최종연산

보통 최종 연산에 의해 List, Integer, void 등 스트림 이외의 결과가 반환.
forEach, count, collect처럼 스트림 파이프라인을 처리해서 스트림이 아닌 결과를 반환하는 연산을 최종 연산

반응형

+ Recent posts