Stream
에 size()
혹은 length
가 존재하지 않는 이유
아래의 개념을 알기 전에 앞서 스트림에서 평가(evaluation) 란 무엇인지 알아야 한다.
Stream
은 게으르게 프로세스를 처리하도록 설계되어 있다.Stream
은 각 원소가 실제로 필요할 때까지 평가(evaluation) 하지 않는다.- 큰 데이터 셋을 처리하는 경우, 이 접근 방식이 매우 효과적이다.
- 실제로 평가되기 전까지 데이터의 변환이 더 있을 것이라 가정하고 크기를 반환하는
size()
혹은length
같은 프로퍼티를 제공하지 않는다.- 대신
count()
메서드를 호출하면 스트림을 소모하여 전체 데이터 개수의 숫자를 반환한다.
- 대신
반응형
'Java > 자바 잡지식' 카테고리의 다른 글
자바 리플렉션 (Reflection) 이란? (0) | 2023.06.26 |
---|---|
자바의 ThreadLocal 이란? (0) | 2023.06.23 |
자바 함수형 인터페이스 혹은 람다 인터페이스란? (0) | 2023.03.29 |
Java Stream API 에서 평가 (evaluation) 란? (0) | 2023.03.28 |
자바에서 상속이 갖는 단점들 (0) | 2023.02.22 |