함수형 프로그래밍을 구성하기 위한 함수식이며, 간단히 말해 자바의 메소드를 간결한 함수식으로 표현한 것입니다.
지금까지 자바에서는 메서드를 표현하려면 클래스를 정의해야 했습니다. 하지만, 람다식을 이용한다면, 메서드의 이름과 반환값을 생략할 수 있고, 이를 변수에 넣어 자바코드가 매우 간결해지는 장점이 있습니다.
람다식의 기본 구조는 다음과 같습니다.
(parameters) -> expression
혹은, 블록이 필요한 경우 아래와 같이 적습니다.
(parameters) -> {
// multiple statements
statement1;
statement2;
...
}
예시 코드를 통해 알아봅시다.
Runnable r1 = new Runnable() {
@Override
public void run() {
System.out.println("Hello, world!");
}
};
위의 코드를 람다식으로 바꾸면 아래와 같습니다.
Runnable r2 = () -> System.out.println("Hello, world!");
// 기존 방식
Comparator<Integer> comp = new Comparator<Integer>() {
@Override
public int compare(Integer a, Integer b) {
return a.compareTo(b);
}
};
// 람다식 사용
Comparator<Integer> compLambda = (a, b) -> a.compareTo(b);