스트림 소개

자바 8버전부터 추가된 컬렉션 요소를 하나씩 참조해서 람다식(함수적 인터페이스)으로 처리할 수 있도록 해주는 반복자이다.

자바 8 이전에는 컬렉션 처리에는 무조건 Iterator가 이용되었으나, 선택의 폭이 넓어졌다.

스트림 특징

외부 반복자와 내부 반복자 비교

스트림은 내부 반복자를 사용한다.

https://velog.velcdn.com/images%2Fjakeseo_me%2Fpost%2Fa4b0d680-0a28-4a6a-9e19-b10072c51b89%2Fimage.png

내부 반복자는 처리코드만 제공하고 처리를 위임하여 병렬 처리가 컬렉션 내부에서 일어나게 만들 수 있다.

외부 반복자는 요소를 가져오는 것부터 처리하는 것까지 모두 개발자가 작성해야 한다.

내부 반복자의 이점

스트림의 중간처리와 최종처리 개념

스트림은 중간처리(Intermediate Operation)와 최종처리(Terminal Operation) 개념이 있는데, 두 페이즈를 명확히 나누는 편인 것 같다.