수는 같은 파라미터를 받지만, 의미가 아주 다르기 때문에 서로 같은 유형의 연산이 아니다.
Iterable
에 대한 연산은 즉시 계산
eager
이지만
Sequence
에 대한 연산은 지연 계산이기 때문에
이 둘을 아무 불이익 없이 바꿔 사용할 수는 없다(이에 대해서는 나중에 살펴본다).
반면 이들이 비슷한
API
를 제공한다는 점은 이 예제와 같은 상황에서 이터러블과 시퀀스를 서로
전환하고 싶을 때 (소스) 코드를 거의 바꾸지 않아도 된다는 사실을 의미한다.
averageNonBlankLength
의 시퀀스 버전에서는 각 단계의 결과를 저장하기 위한 중간 리스트
생성 비용이 들지 않는다. 하지만 원소 갯수가 적다면 파이프라인을 만들고 실행하는 비용이
리스트를 생성하는 비용보다 더 비싸진다. 예제의 경우
Int
길이를 여전히
Integer
로 박싱해
야 하지만 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.