>Java >java지도 시간 >Java 8 스트림의 `map()`과 `platMap()`의 차이점은 무엇입니까?

Java 8 스트림의 `map()`과 `platMap()`의 차이점은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-16 08:44:03916검색

What's the Difference Between `map()` and `flatMap()` in Java 8 Streams?

Java 8의 map()과 flatMap() 메서드 간의 불일치 이해

Java 8에서는 map()과 flatMap()이 모두 사용됩니다. 메소드는 Stream에 적용되어 Stream을 반환할 수 있습니다. 그러나 이러한 메서드는 입출력 관계가 다릅니다.

map() 메서드

map() 작업은 각 입력 값에 대해 하나의 출력 값을 생성합니다. 기본적으로 입력 스트림의 각 요소에 함수를 적용합니다. 함수는 입력 값을 가져와 단일 결과 값을 생성합니다.

flatMap() 메서드

반면, flatMap() 작업은 원하는 수의 값( 0 포함) 각 입력 값에 대해. 이는 값을 가져와 임의 개수의 값을 반환하는 함수인 인수에 의해 활성화됩니다.

이러한 차이의 이유는 Java 메소드가 0 또는 1개의 값만 반환할 수 있기 때문입니다. flatMap()은 매퍼 함수가 스트림을 출력으로 반환하도록 허용하여 이러한 제한을 회피합니다. 이 스트림의 값은 이후에 배수되어 출력 스트림으로 전달됩니다. 결과적으로 매퍼 함수의 값 그룹화는 출력 스트림에서 구별할 수 없으므로 출력은 "평탄화"된 것으로 간주됩니다.

사용법

일반적으로 flatMap()은 다음과 같은 경우에 사용됩니다. 매퍼 함수는 0 값(Stream.empty() 사용) 또는 여러 값(Stream.of(a, b, c) 사용)을 반환하려고 합니다. 그럼에도 불구하고 모든 유형의 스트림이 반환될 수 있습니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.