Stream 도입 전에 확인할 결과 계약

순서·재사용·변경·실행 횟수를 질문해 표현을 고른다.

질문Stream 선택다른 선택
원본을 보존하는가새 결과 수집in-place loop
한 번만 소비하는가pipelinematerialized List
부수 효과가 핵심인가가급적 아님명시적 command loop
순서가 기능인가ordered terminalunordered 허용

핵심: 결과를 여러 번 읽어야 하면 Stream보다 불변 collection을 반환한다.