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