Stream
- CS에서 전반에서 사용된 단어
- 하나의 고정된 집합
- java: 데이터를 파이프 라인으로 방식으로 함수로 처리
생성
- 시작이 되는 데이터 군집
- Collection
- Array
- File
- List
- etc...
가공
- 중간 연산자
- 스트림을 가공을 해서 새로운 스트림으로 반환
- 독립적(stateless) || 종속적(stateful)
-filter
- map
- peek
- sorted
- disticnt
- limit
- etc...
소비
- 스트림을 끝내고 값을 반환
- collect
- findAny || findFirst
- anyMatch || allMatch
- forEach
- 덜 stream 스러움(알 수 없는 side-effect가 생김)
- log 출력정도로만 쓸 것을 권유
단점
- for, while 보다 느림
- 내부의 동작 과정을 정확하게 알아야 문제가 안생김