Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java/자바] Stream의 flatMap() 메서드 사용 방법 본문
Stream의 flatMap() 메서드란?
Java의 스트림(Stream) API는 데이터를 처리하기 위한 편리한 방법을 제공합니다. Stream의 flatMap() 메서드는 중첩된 구조의 데이터를 펼쳐서 단일 레벨의 스트림으로 만들어주는 데 사용됩니다. 이를 통해 중첩된 데이터를 평탄화하여 처리할 수 있습니다.
Stream의 flatMap() 메서드 사용 방법
Stream의 flatMap() 메서드는 다음과 같은 형식을 갖습니다:
<R> Stream<R> flatMap(Function<? super T, ? extends Stream<? extends R>> mapper)
- mapper: 각 요소를 새로운 스트림으로 매핑하는 함수를 지정하는 Function입니다.
Stream의 flatMap() 메서드 예제
다음은 Stream의 flatMap() 메서드를 사용하여 중첩된 리스트를 평탄화하는 예제 코드입니다.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamFlatMapExample {
public static void main(String[] args) {
List> nestedNumbers = Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(4, 5, 6),
Arrays.asList(7, 8, 9)
);
// 중첩된 리스트를 평탄화하여 단일 레벨의 스트림으로 변환
List flattenedNumbers = nestedNumbers.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println("Flattened numbers: " + flattenedNumbers);
}
}
추가 예제:
아래는 Stream의 flatMap() 메서드를 사용하는 다양한 예제 코드입니다.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class MoreStreamFlatMapExamples {
public static void main(String[] args) {
// 예제 1: 문자열 리스트의 각 요소를 문자 단위로 분리하여 새로운 리스트 생성
List words = Arrays.asList("java", "stream", "flatMap");
List letters = words.stream()
.flatMap(word -> Arrays.stream(word.split("")))
.collect(Collectors.toList());
System.out.println("Letters: " + letters);
// 예제 2: 중첩된 리스트의 각 요소의 제곱 값을 담은 리스트 생성
List> nestedNumbers = Arrays.asList(
Arrays.asList(1, 2),
Arrays.asList(3, 4),
Arrays.asList(5, 6)
);
List squares = nestedNumbers.stream()
.flatMap(innerList -> innerList.stream().map(n -> n * n))
.collect(Collectors.toList());
System.out.println("Squares: " + squares);
}
}
'프로그래밍' 카테고리의 다른 글
[Java/자바] ConcurrentModificationException 발생 및 해결 방법 (0) | 2024.03.09 |
---|---|
[Java/자바] 두 개의 Map 합치기 (merge, putAll) (0) | 2024.03.09 |
[Java/자바] Stream의 map() 메서드 사용 방법 (0) | 2024.03.09 |
[Java/자바]- Stream의 filter() 메서드 사용 방법과 예제 (0) | 2024.03.09 |
[Java/자바] Stream.reduce() 메서드 사용 방법과 예제 (0) | 2024.03.09 |