본문으로 바로가기

.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