스트림 - 컬렉션(배열 포함)의 저장 요소를 하나씩 참조해서 람다식(함수적-스타일(functional-style))으로 처리하는 반복자 람다식으로 요소 처리 코드를 제공 : stream이 제공하는 대부분의 요소 처리 메소드는 함수적 인터페이스 매개 타입을 가지기 때문에 람다식 또는 메소드 참조를 이용해서 요소 처리 내용을 매개값으로 전달 내부 반복자를 사용하므로 병렬 처리가 쉬움 : 외부 반복자는 개발자가 코드로 직접 컬렉션의 요소를 반복해서 가져오는 코드패턴(index를 이용하는 for문 Iterator를 이용하는 while문은 모두 외부 반복자를 이용), 내부 반복자는 컬렉션 내부에서 요소들을 반복시키고, 개발자는 요소당 처리해야 할 코드만 제공하는 코드 패턴, 내부 반복자의 장점은 어떻게 요소를 반복시킬 것인가는 컬렉션에 맡기고 개발자는 요소 처리 코드에만 집중, 내부 반복자는 요소들의 반복 순서를 변경하거나, 멀티 코어 CPU를 활용하기 위해 요소들을 분배시켜 병렬 작업을 할 수 있게 도와주기 떄문에 하나씩 처리하는 순차적 외부 반복자보다는 효율적으로 요소를 반복시킬 수 있음 병렬 처리 : 한 가지 작업을 서브 작업으로 나누고, 서브 작업들을 분리된 스레드에서 병렬적으로 처리하는 것, 병렬 처리 스트림을 이용하면 런타임 시 하나의 작업을 서브 작업으로 자동으로 나누고, 서브 작업의 결과를 자동으로 결합해서 최종 결과물을 생성 스트림은 중간 처리와 최...