Stream pipeline을 이루는 세 구간

데이터 공급, element 변환, 결과 확정을 한 방향으로 읽는다.

  1. Source

    List·array·range가 값을 공급한다

    input
  2. Filter

    조건에 맞는 element만 통과시킨다

    intermediate
  3. Map

    element type과 표현을 바꾼다

    intermediate
  4. toList

    pipeline을 소비해 결과를 만든다

    terminal

핵심: terminal이 끝난 Stream instance는 다시 사용할 수 없다.