[JAVA] Collection 과 Stream 비교
Collection vs Stream
Collection
- 자료구조의 모든 값을 메모리에 저장
- Collection 의 모든 요소는 추가 전 미리 계산되어야한다.
Stream
- 단 한번만 탐색이 가능하다
- 재사용 불가, 시도시
IllegalStateException
발생
- 요청이 있을 때에만 요소에 대해 계산한다.
- 요소를 추가, 제거는 불가능
- Java 8 부터 제공
외부 반복과 내부 반복
- Collection
- Collection 이 외부 반복으로 처리
- for each 등을 이용해 처리하는 방법
- 명시적으로 각 요소를 하나씩 가져와 처리, 병렬성 직접 관리 필요
- Stream
- Stream 은 내부 반복 처리
- 반복을 병렬 처리하여 최적화된 순서로 처리
filter
, map
등 병렬 처리(파이프라이닝) 가능한 중간 연산 제공
count
, collect
등 최종 연산은 스트림을 닫는다
reference