티스토리 뷰

☠️ Java

람다식(Lambda Expression)

James Wetzel 2024. 10. 1. 17:41
728x90
반응형

람다식(Lambda Expression)은 자바 8부터 도입된 기능으로, 간단하게 말해서 익명 함수라고 할 수 있습니다. 

즉, 이름이 없는 함수를 말하며, 주로 코드의 간결함과 가독성을 높이기 위해 사용됩니다. 

자바에서 람다식을 사용하면 불필요한 코드 작성을 줄이고, 함수형 프로그래밍의 개념을 도입할 수 있게 됩니다.


(매개변수) -> { 실행문 }
// 0. 기존 익명 클래스 사용 방식
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello, World! clasic type");
    }
};

// 1. 기존 익명 클래스 방식 호출
// 예상 출력 = Hello, World! clasic type
runnable.run(); 

// 2. 람다식 사용
// 예상 출력 = Hello, World! lamda type
Runnable runnableLambda = () -> System.out.println("Hello, World! lamda type");

 

결국 람다식(Lambda Expression)은 0번과 1번의 과정을 함축적으로 표현 함으로써 여러가지 장점을 가지게 된다.

- 불필요한 코드가 줄어듦.
- 병렬 처리와 같은 복잡한 작업을 쉽게 표현할 수 있음.


하지만, 람다식을 사용하기 위해서는 함수형 인터페이스가 필요합니다. 

자바에서 함수형 인터페이스란 

단 하나의 추상 메서드를 가진 인터페이스로, 이 인터페이스를 구현할 때 람다식을 사용할 수 있습니다.

@FunctionalInterface
public interface MyFunctionalInterface {
    void myMethod();  // 단 하나의 추상 메서드
}

 

MyFunctionalInterface func = () -> {
    System.out.println("람다식으로 구현된 메서드");
};

func.myMethod();  // 출력: 람다식으로 구현된 메서드

기본 제공 함수형 인터페이스 (자바 8 이후):
자바 8부터는 java.util.function 패키지에 여러 가지 기본 제공 함수형 인터페이스가 포함되어 있습니다. 예를 들어:

Function<T, R>: 입력값 T를 받아 결과 R을 반환하는 함수
Predicate<T>: 입력값 T를 받아 참 또는 거짓을 반환하는 함수
Consumer<T>: 입력값 T를 받아 사용하고 반환 값이 없는 함수
이런 기본 제공 함수형 인터페이스를 통해 미리 정의된 함수 없이도 쉽게 람다식을 사용할 수 있습니다.

 

https://scshim.tistory.com/287

 

[Java] 표준 API의 함수형 인터페이스, java.util.function 패키지

이 글은 java.util.function 패키지의 함수형 인터페이스 표준 API에 대해서 설명합니다. 학습 목표 · java.util.function 패키지 · Consumer · Supplier · Function · Operator · Predicate java.util.function 패키지 자바에

scshim.tistory.com

 

728x90
반응형