JAVA

태태개발일지 - flatMap

태태코 2025. 7. 8. 10:20
반응형

 

Java Stream과 flatMap 

Java의 Stream API는 컬렉션을 다루는 데 있어 매우 강력하다.

특히 flatMap은 2차원 이상의 자료구조를 평탄화(flatten)할 때 필수적인 메서드이다.

이번 글에서는 flatMap이 왜 필요한지, 그리고 실제로 어떻게 동작하는지 예제를 통해 쉽게 설명하겠다.

 

 

2차원 리스트

List<List<Integer>> list = Arrays.asList(
    Arrays.asList(1, 2),
    Arrays.asList(2, 4)
);

 

이 리스트에 stream 사용

 

Stream<List<Integer>> stream = list.stream();

 

각 요소는 리스트이다. 

 

Stream<Stream<Integer>> mappedStream = list.stream().map(innerList -> innerList.stream());

 

그냥 map을 한다면 각 요소는 아직도 stream으로 변하게 된다.

 

Stream<Integer> flatMappedStream = list.stream().flatMap(innerList -> innerList.stream());

 

flatmap을 사용한다면 모든 원소들이 하나의 스트림으로 평탄화 된다.

 

언제 flatMap을 써야 할까? 

리스트 안에 리스트, 혹은 컬렉션 안에 컬렉션이 있을 때  모든 내부 요소를 하나의 컬렉션(혹은 스트림)으로 만들고 싶을 때 

 마무리

flatMap은 중첩된 구조를 평탄화하여 데이터를 한 번에 처리할 수 있게 해준다. 복잡한 자료구조를 다룰 때 꼭 기억해야 할 Stream API의 핵심 기능이다.

 

인프런 강의 링크
https://inf.run/YBTq7

반응형