자바 스트림 flatMap() 예제

7097 단어 java
Java Stream flatMap() 메서드는 중간 작업입니다.

Stream.flatMap() 함수는 이름에서 알 수 있듯이 맵과 평면 작업의 조합입니다. 즉, 먼저 map 함수를 적용한 다음 결과를 병합합니다.

자바 스트림 flatMap() 예제



스트림 병합이 무엇을 구성하는지 이해하려면 "2개의 수준"이 있는 [ [1,2,3],[4,5,6],[7,8,9] ]와 같은 구조를 고려하십시오. 기본적으로 3개의 List가 더 포함된 큰 List입니다. 이것을 평면화한다는 것은 "한 레벨"구조로 변환하는 것을 의미합니다. [ 1,2,3,4,5,6,7,8,9 ] 즉, 단 하나의 목록입니다.

예: 아래 프로그램에서 flatMap() 함수를 사용하여 하나로 병합된 세 개의 목록이 있음을 볼 수 있습니다.

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args)
    {
        List<Integer> evens = Arrays.asList(2, 4, 6);
        List<Integer> odds = Arrays.asList(3, 5, 7);
        List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11);
        List<Integer> numbers = Stream.of(evens, odds, primes)
                .flatMap(list -> list.stream())
                .collect(Collectors.toList());
        System.out.println("flattend list: " + numbers);
    }
}


산출:

flattend list: [2, 4, 6, 3, 5, 7, 2, 3, 5, 7, 11]


관련 Java Stream API의 예


  • Java Stream filter() Example
  • Java Stream map() Example
  • Java Stream flatMap() Example
  • Java Stream distinct() Example
  • Java Stream limit() Example
  • Java Stream peek() Example
  • Java Stream anyMatch() Example
  • Java Stream allMatch() Example
  • Java Stream noneMatch() Example
  • Java Stream collect() Example
  • Java Stream count() Example
  • Java Stream findAny() Example
  • Java Stream findFirst() Example
  • Java Stream forEach() Example
  • Java Stream min() Example
  • Java Stream max() Example
  • Java Stream reduce() Example
  • Java Stream toArray() Example
  • 좋은 웹페이지 즐겨찾기