[CH4] 4.3 데이터 계산 시점에 있어 컬렉션와 스트림의 차이

‍bng4535·2023년 3월 30일
0

질문

답변

해당 요소가 컬렉션에서 사용될 때 계산되는 것이 아니라, 컬렉션에 추가되기 전에 미리 계산해야 한다는 것을 의미합니다.

만약 2부터 n까지의 수 중에서 소수를 찾는 코드를 짠다면,
컬렉션에서는 2부터 n까지의 수를 담은 리스트를 만들어 놓은 상태에서 작업을 시작해야합니다.
따라서, for문으로 2부터 n까지(모든 요소가 추가하기전에) 1씩 증가(계산되어야함)을 통해 List를 생성해야겠죠.

반면, 스트림은 IntStream.rangeClosed(2,n).~~~으로 stream이 실행될 때 2부터 n까지의 값들을 만들기 시작할 것입니다.

스트림은 데이터 소스의 요소들을 한 번에 한 개씩 처리하는 반면에,
컬렉션은 모든 요소를 메모리에 미리 저장해 놓고 처리한다는 것입니다.

이러한 차이로 인해, 스트림은 매우 큰 데이터 소스를 처리할 때 메모리 사용량을 최소화하고, 처리 속도를 높일 수 있는 장점이 있습니다.

git :https://github.com/BanditBool2/ReadingRecord/issues/21
도움 주신 분 : kkambbak1

profile
공부 기록

0개의 댓글