Stream의 성능적 관점에 대해서 얘기해보고자 한다.
바로 들어가기에 앞서 해당 주제를 얘기하기 위한 선행 주제를 먼저 정리하려 한다.
할당되자마자 바로 연산
실제로 필요해질 때 연산, 필요하지 않은 연산은 하지않음
Stream은 Lazy Evaluation의 대표적인 예이다.
0~9 숫자 중 2개의 홀수를 찾아 100을 곱한 결과를 얻어라라는 문제가 있을 때, for each, Stream 2가지 방법을 사용해 풀어봤다.
for each
9번 순회
Stream
4번 순회
보다시피 Stream은 필요로 한 연산을 파악 후 연산을 시작한다. collect 메서드 실행 전 filter, limit 등을 통해 필요한 연산을 파악 후 그 연산만 진행하는 특징이 있다.