[java] flatMap() 메서드를 이용한 스트림 편평화 방법

Java 8부터 추가된 스트림(Stream) API는 강력한 기능을 제공하여 데이터 처리를 간편하게 할 수 있습니다. 그 중에서도 flatMap() 메서드는 스트림의 요소를 편평화하는 데 사용됩니다. 이번에는 flatMap() 메서드를 이용하여 스트림을 편평화하는 방법에 대해 알아보겠습니다.

flatMap() 메서드란?

flatMap() 메서드는 스트림의 각 요소를 다른 스트림으로 매핑하고, 결과 스트림을 편평화하는 역할을 합니다. 즉, 중첩된 스트림을 하나의 스트림으로 합쳐주는 역할을 합니다.

사용 예제

다음은 예제를 통해 flatMap() 메서드를 사용하는 방법을 알아보겠습니다.

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

public class FlatMapExample {
    public static void main(String[] args) {
        List<String> words = Arrays.asList("Hello", "World");

        List<String> uniqueLetters = words.stream()
                .map(word -> word.split(""))
                .flatMap(Arrays::stream)
                .distinct()
                .collect(Collectors.toList());

        System.out.println(uniqueLetters); // [H, e, l, o, W, r, d]
    }
}

위 예제에서는 “Hello”와 “World” 두 개의 단어로 이루어진 리스트를 생성합니다. 그리고 flatMap() 메서드를 이용하여 각 단어를 문자 배열로 변환하고, 이를 다시 스트림으로 만든 후 중복을 제거합니다. 최종적으로 편평화된 문자 스트림을 리스트로 변환하여 출력합니다.

참고 문서

이제 flatMap() 메서드를 사용하여 스트림을 편평화하는 기능을 사용할 수 있습니다. 다양한 데이터 처리 시나리오에서 적절히 활용하여 효율적인 코드를 작성할 수 있습니다.