Java 8의 Stream.map() 및 Stream.FlatMap()
Stream.map() 및 Stream.FlatMap() 값 스트림에서 유사한 변환을 수행하는 Java 8에서 일반적으로 사용되는 두 가지 메서드입니다. 그러나 값을 처리하고 반환하는 방법에는 근본적인 차이가 있습니다.
Stream.map()
- 함수 허용 슈퍼 T, ? R> 인수로 사용됩니다. 여기서 T는 입력 유형이고 R은 출력 유형입니다.
- 주어진 함수를 입력 스트림의 각 요소에 적용합니다.
- 변환된 값을 포함하는 새 스트림을 생성합니다. 각각은 입력 값에 해당합니다.
- 예를 들어, 정수 스트림이 주어지면 map을 사용하여 각 정수를 정사각형으로 변환할 수 있습니다.
Stream.FlatMap( )
- 함수 허용 슈퍼 T, ? Stream<을 확장합니다. R>>를 확장합니다. 각 입력 값에 대한 스트림을 반환하는 인수로 사용됩니다.
- 입력 스트림의 각 요소에 대해 함수를 호출합니다.
- 결과 스트림은 단일 스트림으로 연결되어 "평탄화된 스트림"을 생성합니다. " 출력.
- 예를 들어 문자열 스트림이 있는 경우 flatMap을 사용하여 모든 개별 문자를 단일 문자 스트림으로 추출할 수 있습니다.
주요 차이점
map()과 flatMap()의 주요 차이점은 변환 함수의 결과를 처리하는 방법에 있습니다.
-
map()은 1개 변환된 값.
- flatMap()은 각 입력 값에 대해 0개 이상의 변환된 값을 생성합니다.
이러한 구별은 결과 스트림의 모양과 내용에 영향을 미칩니다. flatMap()을 사용하면 중첩 스트림을 생성할 수 있는 반면 map()은 원본 스트림과 동일한 차원을 유지합니다.
위 내용은 Java 8에서 Stream.map()과 Stream.FlatMap()의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!