본문 바로가기

책/모던 자바 인 액션

4장 스트림 소개

❗ 본 포스팅은 타이핑 공부법으로 작성하였습니다. 그렇기에 부족한 점이 존재할 수 있습니다.

4.1 스트림이란 무엇인가?

  • 스트림은 데이터에 대한 질의를 통해 연산할 수 있으며 내부반복과 게으른 연산을 지원하는, 컬렉션과는 다른 방법이다.

4.2 스트림 시작하기

  • 스트림은 '데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소'이다.
  • 데이터 처리 연산은 데이터 베이스의 질의와 비슷하게 구현을 고려하지 않고 질의을 하여 데이터 처리 연산을 하는 것을 의미한다.
  • 연속된 요소는 컬렉션 처럼 연속된 요소를 가지고 있는 것을 의미한다.
  • 소스는 컬렉션이나 데이터 I/O와 같이 연속된 데이터를 의미한다.
  • 파이프 라이닝을 지원하고 내부반복을 수행한다.
  • 스트림은 매우 비싼 연산이다.

4.3 스트림과 컬렉션

  • 스트림은 데이터를 딱 한번만 순회할 수 있다. 즉 한번 탐색한 데이터에 대해서는 두번 다시 돌아가지 못한다. 만약 다시 탐색을 해야 하는 상황이 올 경우 다시 스트림을 생성해야 한다.
  • 컬렉션은 반복문을 통해 외부 반복을 통해 탐색을 해야 하는 반면 스트림은 내부 반복을 통해 탐색을 한다.

4.4 스트림 연산

  • 스트림은 중간 연산과 최종 연산으로 이루어져 있다. 중간 연산은 stream을 반환하고 최종 연산은 stream이외의 것을 반환한다.
  • 중간 연산은 메서드 체이닝을 통해 수행된다.
  • 스트림 연산은 게으른 연산을 한다. 즉 최종 연산을 하기 이전까지 아무런 연산을 수행하지 않는다.

 

' > 모던 자바 인 액션' 카테고리의 다른 글

8장 컬렉션 API 개선  (0) 2024.06.12
7장 병렬 데이터 처리와 성능  (0) 2024.06.11
6장 스트림으로 데이터 수집  (0) 2024.06.09
5장 스트림 활용  (0) 2024.06.07
3장 람다 표현식  (0) 2024.06.05