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 |