1. flatMap() - Stream<T[]>를 Stream<T>로 변환
- 스트림의 요소가 배열이거나 map()의 연산결과가 배열인 경우, 즉 스트림 타입이
Stream<T[]>라면, Stream<T>로 바꿀 때, flatMap()을 사용한다.
- 아래의 예시를 한번 보자.
( Stream<String>을 만들어주기 위해 Arrays.stream(T[])를 사용했다. )
( 그러나, map() 사용하여 변환해 주었더니, Stream<Stream<String>>의 형태가 되었다. )
( 이렇게 되면, 우리가 원하는 Stream<String>으로 못 만들어준다. )
( 그러므로, 위에서 말한대로 flatMap() 메서드를 이용해서, 아래와 같은 형태를 만들어야 한다. )
1-1. flatMap()을 이해하는 예제(1)
: map() 대신 flatMap()을 사용하여 Stream<String> 구조로 만들어 준 예제이다.
1-2. flatMap()을 이해하는 예제(2)
: Stream<Stream<String>>을 Stream<String[]>으로 map()을 사용하여 변환 후, Stream<String>으로
flatMap()을 사용하여 변환하는 예제이다.
( map()으로 변환해줄 때는 String[] 배열을 생성하여 반환해주어야 한다. )
( 그런 다음, flatMap()을 사용하여 다시 Stream<String>으로 변환한다. )
'자바 > 스트림' 카테고리의 다른 글
스트림의 최종 연산(조건 검사, 통계, 리듀싱) (0) | 2022.04.15 |
---|---|
Optional<T>와 OptionalInt (0) | 2022.04.15 |
스트림의 중간 연산(2) (0) | 2022.04.14 |
스트림의 중간 연산(1) (0) | 2022.04.13 |
스트림 만들기 (0) | 2022.04.13 |