본문 바로가기
JAVA BASE/Lambda&Stream(람다와 스트림)

01. [자바] 람다식(Lambda expression)

by staticClass 2021. 1. 12.

람다식(Lambda expression)?

자바가 객체지향언어라는 사실은 모두가 익히 아는 사실이었지만

람다식으로 인해 객체지향언어인 동시에 함수형 언어가 되었다는 사실은

아직도 많은 사람들이 모르는 듯 하다.

💡 람다식은 메서드를 하나의 식으로 표현한 것인데 이 식은 간략하면서도 명확한 표현을 할수 있게 해준다.
💡 람다식을 사용하면 메서드의 이름과 반환값이 없어지는데 이것을 익명함수 라고도 한다.

람다식 사용 전

랜덤 숫자를 넣기 위해 randomNum 메소드를 만들었다.

public static void main(String[] args) {
	int[] arr = new int[5];
    Arrays.setAll(arr, randomNum());
}

int randomNum() {
	return (int)(Math.random*5) + 1;
}

람다식 사용 후

람다식을 이용해 메소드 없이 간략하게 코드를 구현했다.

public static void main(String[] args) {
	int[] arr = new int[5];
    Arrays.setAll(arr, (i) -> (int)(Math.random() *5 ) + 1);
}

위의 짧은 코드를 보면 람다의 대략적인 기능을 파악이 될 것이다.

 

메소드를 호출하기 위해서는

1. 클래스 생성

2. 클래스 안에 메소드 생성

3. 코드에 객체를 생성

4. 메소드 호출

이 모든 과정 없이 람다식 만으로 메소드의 역할을 대신할 수 있다.

 

 

댓글