해당 포스팅에서는 람다식과 스트림에 대해 정리해 보고자 한다.
람다식이란 메서드를 간단한 식 으로 표현하는 방법이다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 사라지므로, 람다식을 '익명 함수(anonymous function)'이라고도 한다.
int max(int a, int b) {
return a > b ? a : b;
}
위 메서드를 람다식으로 표현하면 아래와 같다.
1. (int a, int b) -> a > b ? a : b
2. (int a, int b) -> {return a > b ? a : b;}
3. (a, b) -> a > b ? a : b
a -> a + a
a -> System.out.println(a)
(int a, int b) -> {return a + b}
하나의 메서드만 호출하는 람다식은 메서드 참조로 간단히 할 수 있다.
Stream은 Java 8에 추가된 기능이다. 컬렉션에 저장되어 있는 요소들을 하나씩 참조하여 람다식으로 처리할 수 있도록 해주는 반복자이다. 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것이다.
이번 포스팅에서는 간단하게 Java Stream의 filter()
, map()
, flatMap()
사용방법에 대해 정리해보고자 한다.