Stream : 람다를 활용하여 내부반복자를 사용하여 시간을 줄일 수 있다.
(jdk 8.0 이후에 추가된 API)
- 병렬처리 (multi-threading)이 가능하다.
- 대용량의 데이터들을 빠르게 처리할 수 있다.
Stream 방식
1. 생성하기 : Stream 인스턴스 생성
2. 가공 : Filtering, Mapping 등을 이용하여 가공
3. 결과 : 결과 작업
필터 (filter, distinct)
변환 (map, flatMap) : 스트림의 요소를 다른 요소로 대체할 수 있는 기능
제한 (limit, skip)
정렬 (sorted)
결과 확인 (peek)
출력 (forEach)
소모 (reduce)
검색 (findFirst, findAny)
findFirst()와 findAny() : 해당 스트림에서 첫 번째 요소를 참조하는 Optional 객체를 반환
Optional : 집계확인
검사 (anyMatch, allMatch, noneMatch)
통계 (count, min, max)
연산 (sum, average)
수집 (collect)
★ 추가로