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 중국어 웹사이트의 기타 관련 기사를 참조하세요!