스트림의 중간 연산(3)

2022. 4. 14. 17:27·자바/스트림

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
'자바/스트림' 카테고리의 다른 글
  • 스트림의 최종 연산(조건 검사, 통계, 리듀싱)
  • Optional<T>와 OptionalInt
  • 스트림의 중간 연산(2)
  • 스트림의 중간 연산(1)
백_곰
백_곰
  • 백_곰
    친절한 코딩
    백_곰
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 알고리즘 (with JAVA)
        • 기본 알고리즘
        • 완전 탐색
        • 분할 정복 알고리즘
        • 동적 계획법
        • 탐욕법
        • 코딩 테스트 기출 문제
        • 코드트리 조별과제
      • 백준 (with JAVA)
        • 완전 탐색
        • 분할 정복
        • 그 외
      • 자바
        • 개발 환경 구축하기
        • 팁
        • 기본적인 개념
        • 컬렉션 프레임워크
        • 프로세스와 쓰레드
        • 지네릭스
        • 람다식
        • 스트림
        • 입출력 IO
        • 네트워킹
        • 열거형(enums)
        • java.lang 패키지
        • java.time 패키지
        • 유용한 클래스들
        • 형식화 클래스들
      • 안드로이드 with 자바
        • 응용 문제들
        • 자잘한 문제들
        • 오류 보고서
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      문자 기반 스트림
      코딩트리조별과제
      outputstream
      제자리 정렬
      소켓 프로그래밍
      InputStream
      코드트리
      자바 개념
      불안정 정렬
      Collections Framework
      유용한 클래스
      다형성
      serializable
      map()
      안드로이드 스튜디오
      java.time 패키지
      스트림
      file
      Arrays
      ServerSocket
      snail
      알고스팟
      TCP 소켓 프로그래밍
      역직렬화
      선택 정렬
      람다식
      안정 정렬
      java.lang패키지
      중간연산
      코딩테스트
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    백_곰
    스트림의 중간 연산(3)
    상단으로

    티스토리툴바