.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
'개발 서적 정리' 카테고리의 다른 글
[Modern Java in Action] null 대신 Optional을 사용하기 (0) | 2020.08.02 |
---|---|
[Modern Java in Action] Stream 2편 (0) | 2020.07.30 |
[Modern Java in Action] 함수형 인터페이스 (0) | 2020.07.25 |
[Modern Java in Action] Stream (0) | 2020.07.13 |
스프링 입문을 위한 자바 객체지향의 원리와 이해 (0) | 2020.07.06 |