개발놀이터

자바 람다식표현 본문

Java

자바 람다식표현

마늘냄새폴폴 2021. 8. 16. 01:32

*람다 표현식
람다 표현식이란 간단히 말해 메소드를 하나의 식으로 표현한 것이다.

int min(int x, int y) {
    return x < y ? x : y;
}

람다표현식
(x, y) -> x < y ? x : y;

위의 예제처럼 메소드를 람다 표현식으로 표현하면, 클래스를 작성하고 객체를 생성하지 않아도 메소드를 사용할 수 있다.

그런데 자바에서는 클래스의 선언과 동시에 객체를 생성하므로, 단 하나의 객체만을 생성할 수 있는 클래스를 익명 클래스라고 한다. 따라서 자바에서 람다 표현식은 익명 클래스와 같다고 할 수 있다.

이러한 람다 표현식은 메소드의 매개변수로 전달될 수도 있으며, 메소드의 결괏값으로 반환될 수도 있다.
따라서 람다 표현식을 사용하면, 기존의 불필요한 코드를 줄여주고, 작성된 코드의 가독성을 높여준다.
Java SE 8 부터는 이러한 람다 표현식을 사용하여 자바에서도 함수형 프로그래밍을 할 수 있게 되었다.


*람다 표현식 작성
자바에서는 화살표기호를 사용하여 람다 표현식을 작성할 수 있다.
(매개변수목록) -> { 함수몸체 }

자바에서 람다 표현식을 작성할 때 유의해야할 사항은 다음과 같다.

1. 매개변수의 타입을 추론할 수 있는 경우에는 타입을 생략할 수 있다.
2. 매개변수가 하나인 경우에는 괄호를 생략할 수 있다.
3. 함수의 몸체가 하나의 명령문만으로 이루어진 경우에는 중괄호를 생략할 수 있다.
4. 함수의 몸체가 하나의 return 문으로만 이루어진 경우에는 중괄호를 생략할 수 있다.
5. return 문 대신 표현식을 사용할 수 있으며, 이때 반환값은 표현식의 결괏값이 된다.

'Java' 카테고리의 다른 글

Timer / TimerTask  (0) 2021.09.06
자바 스트림API  (0) 2021.08.16
자바 Map컬렉션 클래스  (0) 2021.08.10
자바 Stack 과 Queue  (0) 2021.08.09
자바 List 컬렉션 클래스  (0) 2021.08.09