본문 바로가기

책/모던 자바 인 액션

5장 스트림 활용

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

5.1 필터링

  • Predicate 람다식으로 stream에 filter를 할 수 있다.
  • distinct()로 중복된 요소를 없앨 수 있다.

5.2 스트림 슬라이싱

  • stream은 takeWhile(), dropWhile(), limit()로 개수를 제한할 수 있다.

5.3 매핑

  • steam에 map(Predicate<T>)를 통해 각 요소에 Predicate <T>를 적용할 수 있다.
  • map의 반환 타입은 Stream(T)형식을 가진다. 이때 Stream의 각 요소가 List <T>와 같은 형식에서 map() 메서드를 거치면 반환값의 타입은 Stream <List <T>>의 형식을 가진다. 그러나 flatMap(Predicate <T>)은 Stream의 요소가 List <T>와 같은 형식일 경우 이를 까서 Stream으로 만들고 Predicate <T>를 적용시킨다.

5.4 검색과 매칭

  • anyMatch(), findMatch()는 뭐든 먼저 찾을 경우 해당 값을 반환하거나 혹은 boolean을 반환한다.
  • findFirst()는 첫번째 요소를 반환(최종 연산)

5.5 리듀싱

  • 바로 연산을 해주는 메소드
  • 인자로 주어지는 람다식에 따라 반환값이 달라진다. 일종의 map이 변환과 같은 느낌이었다면 이는 stream 요소를 하나로 처리해서 값을 도출하는 느낌

5.7 숫자형 스트림

  • 기존에는 stream의 요소를 처리하기 위해 map으로 한번 변환을 해주고 처리하였으나 이제는 IntStrem같이 바로 원하는 형태의 stream으로 바꿀 수 있음
  • 숫자 범위를 지정해 줄 수 있다.

5.8 스트림 만들기

  • Optional을 이용해서 stream으로 만들 수 있다.

 

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

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