티스토리 뷰
1.스트림 : 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소
* 컬렉션의 주제는 데이터고, 스트림의 주제는 계산임
* 소스 : 소스와 같은 순서로 유지됨
* 데이터 처리 연산 : 일반적으로 지원하는 연산과 데이터 베이스와 비슷한 연산을 지원함
2.스트림의 특징
1. 파이프라이닝
2. 내부반복
3. 스트림과 컬렉션의 차이
- 데이터를 언제 계산하느냐가 가장 큰 차이
컬렉션 : 적극적 생성 : 모든 값을 계산할 때까지 기다림, 현재 자료구조에 포함된 모든 값을 계산한 다음 컬렉션에 추가
스트림 : 게으른 생성 : 필요할 때만 값을 계산한다는 의미, 사용자가 요청하는 값만 스트림에서 추출하며 생산자와 소비자 관계를 형성하는 것이 특징임!
컬렉션 인터페이스를 사용하려면 외부반복을 통해 사용해야함
스트림 또한 한번만 탐색할 수 있고, 탐색된 스트림은 소비된다.
스트림의 경우 내부반복을 이용해 (즉, 반복자를 명시해줄 필요가 없음) 반복할 수 있음
4. 스트림 연산
연결할 수 있는 스트림 연산을 중간연산, 스트림을 닫는 연산을 최종 연산이라고 함.
중간연산은 다른 스트림을 변환함, 여러 중간 연산을 연결하여 질의를 만들 수 있음
forEach/ count/ collect를 제외한 연산은 중간연산