대량의 데이터를 가공해서 축소하는 것을 일반적으로 리덕션이라고 합니다. 데이의 합계, 평균값, 카운팅, 최대값, 최소값 등이 대표적인 리덕션의 결과물이라고 볼 수 있습니다. 그러나 컬렉션의 요소를 리덕션의 결과물로 바로 집계할 수 없을 경우에는 집계하기 좋도록 필터링, 매핑, 정렬, 그룹핑 등의 중간 처리가 필요합니다. 스트림은 크게 세가지 단계에 걸쳐서 동작한다. 스트림 생성: 스트림 인스턴스 생성. 스트림 중개 연산(스트림 변환, 가공): 필터링(filtering) 및 맵핑(mapping) 등 원하는 결과를 만들어가는 중간 작업. 스트림 최종 연산(스트림 사용, 결과): 최종적으로 결과를 만들어내는 작업 배열 스트림 배열 스트림은 Arrays.stream()메소드를 활용하여 생성이 가능하다. Stri..