중간연산 : n번, Stream을 반환 - limit(), skip(), filter(), distinct(), map(), flatMap(), peek()
최종연산 : 1번, Stream닫힘. 스트림 요소 소모 - forEach(), allMatch(), anyMatch(), noneMatch(), reduce(), findFirst(), findAny(), reduce(), collect()
스트림의 모든 요소에 지정된 작업을 수행 - forEach(), forEachOrdered()

forEachOrdered 가 성능은 떨어지지만 순서를 보장해줌
조건 검사 - allMatch(), anyMatch(), noneMatch()



collect()는 Collector를 매개변수로 하는 스트림의 최종연산

Collecotr는 수집(collect)에 필요한 메서드를 정의해 놓은 인터페이스

Collectors클래스는 다양한 기능의 컬렉터(Collector를 구현한 클래스)를 제공

잘 가져다 쓰면 됨
collect() : 최종연산
Collector : 인터페이스
Collecotrs : 클래스. Collecotr를 구현
스트림을 컬렉션으로 변환 - toList(), toSet(), toMap(), toCollection()

스트림을 배열로 변환 - toArray()


스트림을 리듀싱 - reducing()

문자열 스트림의 요소를 모두 연결 - joining()

partitioningBy() 는 스트림을 2분할 한다.

groupingBy()는 스트림을 n분할 한다.

값들을 그룹핑해서 분류를 할 수 있다.


외울 필요는 없고 필요한 부분만 찾아서 사용