● lamda(람다함수)란?
익명함수를 지칭하는 용어로, 함수를 하나의 식으로 표현한 것이다.
이름이 존재하지 않으며 매개변수와 함수의 본문이 존재하는 메서드라 할 수 있다.
람다함수는 변수처럼 사용 가능하며, 매개변수로도 전달이 가능하다. (1급객체)
● lamda 등장 이유
lamda 와 stream은 java8에서 부터 등장하였다.
이 둘이 등장하게 된 가장 큰 이유는 함수적 프로그래밍을 적용하기 위해서이다.
함수형 프로그래밍이란 대입문을 사용하지 않는 프로그래밍으로 코드가 how 보단 what을 설명한다.
데이터의 용량의 커질수록 객체지향 프로그래밍은 객체를 만드는 시간이 걸리기 때문에 함수형 프로그래밍 사용이 효율적이다.
함수형 프로그래밍의 특징을 한 줄로 정리하면 아래와 같다.
부수효과가 없는 순수 함수를 1급 객체로 간주하여 파라미터나 변환값으로 사용할 수 있으며, 참조 투명성을 지킬수 있다.
● 람다식 사용가능 조건
람다식은 함수적 인터페이스인 경우에만 사용 가능하다.
함수적 인터페이스 : 인터페이스가 단 한개의 추상 메서드만 가지고 있는 경우
추상 메서드 : 자식 클래스에서 오버라이딩 해야만 사용가능한 메서드
● 람다식 표현 방법
람다식은 매개변수 + 실행문으로 구성된다. (접근 지정자와 반환형 생략)
기본 구조는 () -> {} 이다.
public interface Calculate{
public int cal(int num1, int num2)
}
이전 방식
public static void main (String[] args){
public int cal(int num1, int num2){
return num1 + num2;
}
Calculate cal = new Calculate();
int val = cal.cal(3,4);
System.out.println(val);
}
위의 함수를 람다로 나타내면
public static void main (String[] args){
Calculator cal = (int num1, int num2) -> {return num1+num2;}
System.out.println(cal.cal(1,2));
}
'java' 카테고리의 다른 글
| [java] 필요 개념 정리 hash map (0) | 2023.09.19 |
|---|---|
| [자바] 메소드의 활용 (0) | 2023.04.04 |
| [자바] 객체배열 (0) | 2023.03.27 |
| [java] 객체와 생성자 (0) | 2023.03.20 |
| [java] 배열 (0) | 2023.03.13 |