> Java > java지도 시간 > Java 8에서 Stream.map()과 Stream.FlatMap()의 주요 차이점은 무엇입니까?

Java 8에서 Stream.map()과 Stream.FlatMap()의 주요 차이점은 무엇입니까?

DDD
풀어 주다: 2024-11-19 10:41:02
원래의
911명이 탐색했습니다.

What's the Key Difference Between Stream.map() and Stream.flatMap() in Java 8?

Java 8의 Stream.map() 및 Stream.FlatMap()

Stream.map() 및 Stream.FlatMap() 값 스트림에서 유사한 변환을 수행하는 Java 8에서 일반적으로 사용되는 두 가지 메서드입니다. 그러나 값을 처리하고 반환하는 방법에는 근본적인 차이가 있습니다.

Stream.map()

  • 함수 허용 인수로 사용됩니다. 여기서 T는 입력 유형이고 R은 출력 유형입니다.
  • 주어진 함수를 입력 스트림의 각 요소에 적용합니다.
  • 변환된 값을 포함하는 새 스트림을 생성합니다. 각각은 입력 값에 해당합니다.
  • 예를 들어, 정수 스트림이 주어지면 map을 사용하여 각 정수를 정사각형으로 변환할 수 있습니다.

Stream.FlatMap( )

  • 함수 허용>를 확장합니다. 각 입력 값에 대한 스트림을 반환하는 인수로 사용됩니다.
  • 입력 스트림의 각 요소에 대해 함수를 호출합니다.
  • 결과 스트림은 단일 스트림으로 연결되어 "평탄화된 스트림"을 생성합니다. " 출력.
  • 예를 들어 문자열 스트림이 있는 경우 flatMap을 사용하여 모든 개별 문자를 단일 문자 스트림으로 추출할 수 있습니다.

주요 차이점

map()과 flatMap()의 주요 차이점은 변환 함수의 결과를 처리하는 방법에 있습니다.

  • map()은 1개 변환된 값.
  • flatMap()은 각 입력 값에 대해 0개 이상의 변환된 값을 생성합니다.
이러한 구별은 결과 스트림의 모양과 내용에 영향을 미칩니다. flatMap()을 사용하면 중첩 스트림을 생성할 수 있는 반면 map()은 원본 스트림과 동일한 차원을 유지합니다.

위 내용은 Java 8에서 Stream.map()과 Stream.FlatMap()의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿