💡 Lambda란?
자바의 람다 표현식(Lambda Expression)은 Java 8부터 도입된 기능으로, 간단하게 메소드를 정의하고 전달 할 수 있는 방법입니다.
람다 표현식은 주로 함수형 인터페이스(Functional Interface)의 인스턴스를 생성할 떄 사용됩니다.
함수형 인터페이스는 메소드가 하나만 정의된 인터페이스를 의미합니다.
불필요한 코드를 줄이고 가독성을 향상시키는 것을 목적으로 두고 있습니다.
📌 Lambda의 특징
1. 익명성
람다식은 이름이 없는 함수입니다. 따라서 일회용 함수를 만드는 데 유용합니다.
2. 함수형 인터페이스
람다식은 함수형 인터페이스에 사용됩니다.
함수형 인터페이스는 하나의 추상메소드를 가진 인터페이스를 말합니다.
3. 표현의 간결성
람다식을 사용하면, 코드의 양을 줄이고 가독성을 높일 수 있습니다.
📌람다식의 장단점
장점
1. 간결성 : 람다식은 메소드를 간결하게 표현할 수 있습니다. 이로 인해 코드의 양이 줄고 가독성이 향상됩니다.
2. 함수형 프로그래밍 : 람다식을 통해 함수형 프로그래밍을 활용할 수 있습니다. 함수형 프로그래밍은 불변성과 부작용 없음을 지향하므로, 병렬 처리 등에서 이점이 있습니다.
3. 지연 연산 수행 : 람다식은 필요할 때만 연산을 수행하는 지연 연산(Lazy Evaluation)을 가능하게 합니다. 이로 인해 성능을 향상시킬 수 있습니다.
단점
1. 람다를 사용하지 않는 사람들에게 낯설 수 있음 : 람다식은 익숙하기 않은 사람들에게는 코드 해석이 어렵게 느껴질 수 있습니다.
2. 디버깅 어려움 : 람다식은 익명 함수이므로, 디버깅하는 데 어려움이 있을 수 있습니다.
3. 재사용성 제한 : 람다식은 일반적으로 한번만 사용되므로, 재사용성이 제한적입니다.
🖊️사용 문법
(parameters) -> expression
또는
(parameters) -> { statements; }
이런 식으로 표현 할 수 있습니다.
(a, b) -> a + b
두개의 정수를 인자로 받고, 두 정수의 합을 결과로 반환합니다.
🍀 함수형 인터페이스(Functional Interface)
@FunctionalInterface
Functional Interface는 일반적으로 '구현해야 할 추상 메소드가 하나만 정의된 인터페이스'를 가리킵니다.
// 메인 클래스
public class Main {
// 함수형 인터페이스 정의
@FunctionalInterface
public interface MyFunction {
int apply(int a, int b);
}
public static void main(String[] args) {
// 람다 표현식을 사용하여 함수형 인터페이스의 인스턴스 생성
MyFunction add = (a, b) -> a + b;
MyFunction multiply = (a, b) -> a * b;
// 함수형 인터페이스를 사용
System.out.println(add.apply(5, 3)); // 출력: 8
System.out.println(multiply.apply(5, 3)); // 출력: 15
}
}
인터페이스를 생성하고 main에 인스턴스를 생성합니다
생성할 때 ( ) -> 을 활용합니다.
위 코드에서 MyFunction은 하나의 추상 메소드 apply를 가진 함수형 인터페이스입니다.
add와 multiply는 이 함수형 인터페이스의 인스턴스로, 람다 표현식을 사용하여 각각 덧셈과 곱셈 연산을 정의하고 있습니다.
add.apply(5, 3) 과 multiply.apply(5,3)은 각각 덧셈과 곱셈 연산을 수행하고 그 결과를 출력합니다.
'백 > Java' 카테고리의 다른 글
[Java] 자바(Java) 소켓 통신이란? 동작 원리와 코드 (0) | 2023.11.23 |
---|---|
[Java] JVM의 개념과 구조 (0) | 2023.11.10 |
[Java] 자바(Java)의 Enum이란? (0) | 2023.10.26 |
[Java] 자바(Java) 어노테이션(Annotation)이란? (2) | 2023.10.25 |
[Java] 자바(Java) 제네릭(Generic)이란? (0) | 2023.10.24 |