람다식(Lambda expression)
- 자바8에서 도입된 익명 함수로 함수형 프로그래밍을 지원하기 위한 기능
- 자바는 객체지향언어인 동시에 함수형 언어
- 코드 중복 제거 및 재사용성을 위해 코드의 변하는 부분, 변하지 않는 부분을 분리할 필요 O → 람다 등장
람다식이란?
- 메서드를 하나의 식(expression)으로 표현한 것
- 메서드를 람다식으로 표현 → 메서드의 이름과 반환값 X → 람다식 = 익명 함수 (anonymous function)
int[] arr = new int[5];
Arrays.setAll(arr, (i) -> (int)(Math.random() * 5) + 1);
람다식 작성
- 이름과 반환타입 제거 + 매개변수 선언부와 몸통 사이에 → 추가
반환타입 메서드이름 (매개변수 선언) {
...
}
(매개변수 선언) -> {
...
}
- 반환값이 있는 메서드의 경우 return문 대신 식(expression)으로 대신할 수 O
- 식의 연산결과 자동적으로 반환값이 됨
- 문장이 아닌 식이므로 끝에 ; 붙이지 X
(int a, int b) -> { return a > b ? a : b; }
(int a, int b) -> a > b ? a : b
- 람다식에 선언된 매개변수의 타입은 추론이 가능한 경우 생략 가능