Java 8의 map()과 flatMap() 메서드 간의 불일치 이해
Java 8에서는 map()과 flatMap()이 모두 사용됩니다. 메소드는 Stream
map() 메서드
map() 작업은 각 입력 값에 대해 하나의 출력 값을 생성합니다. 기본적으로 입력 스트림의 각 요소에 함수를 적용합니다. 함수는 입력 값을 가져와 단일 결과 값을 생성합니다.
flatMap() 메서드
반면, flatMap() 작업은 원하는 수의 값( 0 포함) 각 입력 값에 대해. 이는 값을 가져와 임의 개수의 값을 반환하는 함수인 인수에 의해 활성화됩니다.
이러한 차이의 이유는 Java 메소드가 0 또는 1개의 값만 반환할 수 있기 때문입니다. flatMap()은 매퍼 함수가 스트림을 출력으로 반환하도록 허용하여 이러한 제한을 회피합니다. 이 스트림의 값은 이후에 배수되어 출력 스트림으로 전달됩니다. 결과적으로 매퍼 함수의 값 그룹화는 출력 스트림에서 구별할 수 없으므로 출력은 "평탄화"된 것으로 간주됩니다.
사용법
일반적으로 flatMap()은 다음과 같은 경우에 사용됩니다. 매퍼 함수는 0 값(Stream.empty() 사용) 또는 여러 값(Stream.of(a, b, c) 사용)을 반환하려고 합니다. 그럼에도 불구하고 모든 유형의 스트림이 반환될 수 있습니다.
위 내용은 Java 8 스트림의 `map()`과 `platMap()`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!