카테고리 없음

20240829 13일차

happyst 2024. 8. 29. 17:48

[Stream]
- 컬렉션은 데이터 원소의 효율적인 관리와 접근에 맞게 설계되어 있지만, 스트림은 데이터 원소에
서 수행할 함수형 연산에 맞게 설계되어 있음
- 스트림은 원소에 직접 접근하거나 조작하는 수단을 제공하지 않음
- 스트림을 다 사용한 후에는 더 이상 재사용할 수 없음

- Optional
  * 결과가 없을 수도 있는 경우를 안전하게 처리하기 위해 사용함
  * 값이 없을 때 기본값을 제공할 수 있음
  * 값이 없을 때 예외를 던질 수 있음


- 느긋한 연산/조급한 연산
  * 느긋한 연산은 조급한 연산이 데이터 소스에게 원소를 요구할 때까지 아무 연산도 수행하지 않음
  * 스트림의 최종 연산: 조급한 연산, 중간 연산: 느긋한 연산
  * 스트림의 중간 연산이 느긋한 연산이기 때문에 다운로드 방식처럼 저장 공간이 따로 필요 없음 -> 빅데이터뿐만 아니라 무한 스트림에도 대응 가능

=============== LazyDemo.java

[Stream 매칭과 검색]
- Optional<T> findAny()
- Optional<T> findFirst()
  > 찾으면 Optional[T] 반환 / 못찾으면 Optional.empty 반환