>Java >java지도 시간 >Java 8의 스트림 처리를 위한 `map()` 메소드와 `platMap()` 메소드의 차이점은 무엇입니까?

Java 8의 스트림 처리를 위한 `map()` 메소드와 `platMap()` 메소드의 차이점은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-17 05:02:03492검색

What is the difference between `map()` and `flatMap()` methods for stream processing in Java 8?

map() 및 flatMap() 메소드를 사용한 스트림 처리

Java 8에서 Stream 인터페이스는 데이터 스트림을 처리하기 위한 두 가지 메소드를 제공합니다. : map() 및 flatMap(). 두 메서드 모두 함수를 인수로 받아 새 스트림을 생성하지만 각 요소에 함수를 적용한 결과를 처리하는 방식이 다릅니다.

map() 메서드

map() 메서드는 지정된 함수를 입력 스트림의 각 요소에 적용하여 새로운 결과 스트림을 생성합니다. 예를 들어, 다음 코드 조각은 map()을 사용하여 목록에 있는 각 정수의 값을 두 배로 늘립니다.

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream()
        .map(i -> i * 2)
        .forEach(System.out::println);

이 코드의 출력은 다음과 같습니다.

2
4
6
8
10

flatMap() 메서드

flatMap() 메서드도 입력 스트림의 각 요소에 지정된 함수를 적용하지만 새로운 결과 스트림을 생성하지는 않습니다. 대신 각 요소에 함수를 적용한 결과를 단일 스트림으로 결합합니다.

예를 들어 다음 코드 조각은 flatMap()을 사용하여 문자열 목록의 개별 문자를 새 스트림으로 연결합니다.

List<String> words = Arrays.asList("hello", "world", "java");
words.stream()
        .flatMap(word -> Arrays.stream(word.split("")))
        .forEach(System.out::println);

이 코드의 출력은 다음과 같습니다.

h
e
l
l
o
w
o
r
l
d
j
a
v
a

주요 차이점

map()과 flatMap( )은 map()이 새로운 값 스트림을 생성하는 반면 flatMap()은 각 요소에 함수를 적용한 결과를 결합하는 평면화된 스트림을 생성한다는 것입니다.

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

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