JAVA

map() 과 flatMap() 의 차이

쿠카이든 2022. 9. 22. 16:23
728x90
.map()
  • .map()은 단일 스트림의 원소를 매핑시킨 후 매핑시킨 값을 다시 스트림으로 반환하는 중간 연산을 담당한다.
  • 필터가 조건을 충족시키는 새로운 스트림을 생선한다면, Map은 각각의 아이템을 변경하여 새로운 컨텐츠를 생성하는 기능이다.
List<Person> list = Arrays.asList(
    new Person(20,"kim"),  
    new Person(21,"moon"),
    new Person(22,"sub"),
    new Person(23,"park")
 );

list.stream().map(Person::getName)
.forEach(System.out::println);
kim
moon
sub
park

 

.flatMap()
  • flatMap() 은 여러개의 스트림을 한개의 스트림으로 합쳐준다.
  • 복잡한 스트림을 간단한 스트림으로 변경되는데 사용할 수 있다.
  • 예를들어 아래 코드에서는 Stream<String[]>를 Stream<String> 형태로 변환하였다.
String[][] arrays = new String[][]{ {"a1", "a2"}, {"b1", "b2"}, {"c1", "c2", "c3"} };
Stream<String[]> stream = Arrays.stream(arrays);
Stream<String> stream2 = stream.flatMap(s -> Arrays.stream(s));
stream2.forEach(System.out::println);
a1
a2
b1
b2
c1
c2
c3

 

출처 : https://1-7171771.tistory.com/100

 

[Java8] .map() vs .flatMap() 차이점 알아보기

.map() .map() 은 단일 스트림의 원소를 매핑시킨 후 매핑시킨 값을 다시 스트림으로 반환하는 중간 연산을 담당한다. 필터가 조건을 충족시키는 새로운 스트림을 생선한다면, Map은 각각의 아이템

1-7171771.tistory.com

 

728x90