│컬렉션과 스트림 비교
| 구분 | 컬렉션 | 스트림 |
| 처리 방식 | 다운로드 | 스트리밍 |
| 저장 공간 | 필요 | 불필요 |
| 반복 방식 | 외부 반복 | 내부 반복 |
| 코드 구현 | 명령형 | 선언형 |
| 원본 데이터 | 변경 | 변경하지 않고 소비 |
| 연산 병렬화 | 어려움 | 쉬움 |
│컬렉션
데이터의 공간적 집합체
데이터 원소의 효율적인 관리와 접근에 맞게 설계
원소를 어떻게 반복해서 처리할지 개발자가 반복문이나 반복자를 결정해야 하는 외부 반복 구조를 사용
│스트림
데이터의 시간적 집합체
데이터 원소에서 수행할 함수형 연산에 맞게 설계되어 있다.
원소에 직접 접근하거나 조작하는 수단을 제공하지 않는다.
람다식으로 무엇을 할지 제공하는 내부 반복 구조를 사용하므로 다음 원소를 가져오는 next() 메서드를 호출하거나
인덱스를 다룰 필요가 없다.
스트림을 사용하면 코드가 간단해지고 오류 발생 확률이 줄어든다.
중간 단계의 연산 결과를 저장하지 않기 때문에 빅데이터분만 아니라 무한 데이터까지 처리할 수 있다.
'JAVA > 스트림' 카테고리의 다른 글
| 예제) 컬렉션과 스트림의 데이터 처리 비교 (0) | 2023.08.31 |
|---|---|
| 스트림 정의 (0) | 2023.08.30 |