반응형
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
반응형
'JAVA' 카테고리의 다른 글
| 태태코딩 - 김영한 고급 java 람다 (1) | 2025.07.29 |
|---|---|
| 태태개발일지 - 김영한 고급 JAVA LAMBDA (2) | 2025.07.28 |
| 태태개발일지 - 김영한 고급JAVA (LAMBDA) (1) | 2025.05.26 |
| 태태개발일지 - 김영한 자바 고급 (1) | 2025.05.20 |
| 태태개발일지 - JAVA 고급편(3) 김영한 람다 (1) | 2025.05.05 |