[개발관련]/JAVA
JAVA의 람다식(Lambda Expression) 이해하기
도담하기워니
2025. 2. 1. 00:23
반응형
자바에서 람다 표현식은 익명 함수를 간결하게 표현할 수 있는 기능입니다. 람다 표현식을 사용하면 코드가 더 직관적이고 간결해지며, 특히 함수형 인터페이스를 사용할 때 유용합니다.
1. 람다 표현식 기본 구조
(매개변수들) -> { 실행할 코드 }
- 매개변수들: 람다식에 전달되는 입력 값들.
- 실행할 코드: 람다식이 실행할 코드 블록.
2. 예시
1) 매개변수가 없는 람다
() -> System.out.println("Hello, World!");
이 예시는 매개변수가 없고, "Hello, World!"를 출력하는 람다식입니다.
2) 매개변수가 하나인 람다
x -> x * x
매개변수 x를 받아서 x의 제곱을 반환하는 람다식입니다.
3) 매개변수가 여러 개인 람다
(x, y) -> x + y
매개변수 x와 y를 받아서 두 값을 더하는 람다식입니다.
3. 람다 표현식 사용 예시
람다 표현식은 주로 함수형 인터페이스에서 사용됩니다. 예를 들어, Runnable 인터페이스를 사용한 예시는 다음과 같습니다:
Runnable task = () -> System.out.println("Hello from a thread!");
task.run();
4. 람다 표현식의 장점
- 간결한 코드: 익명 클래스를 사용하는 것보다 코드가 훨씬 간결해집니다.
- 가독성 향상: 불필요한 boilerplate 코드가 줄어들어 가독성이 향상됩니다.
- 함수형 프로그래밍: 자바에서 함수형 프로그래밍 스타일을 사용할 수 있습니다.
5. 함수형 인터페이스
람다 표현식은 함수형 인터페이스와 함께 사용됩니다. 함수형 인터페이스는 하나의 추상 메서드만을 가지는 인터페이스를 말합니다. 예시로 Runnable, Callable, Comparator 등이 있습니다.
@FunctionalInterface
public interface MyFunction {
void apply();
}
위 예시에서 MyFunction 인터페이스는 하나의 추상 메서드를 가지고 있으며, 람다로 구현할 수 있습니다.
MyFunction myFunc = () -> System.out.println("Hello from MyFunction!");
myFunc.apply();
6. 람다 표현식의 제한 사항
- final 또는 effectively final 변수만 사용 가능: 람다식 내에서 참조되는 변수는 반드시 final이거나 사실상 final이어야 합니다.
- 상태 변경이 어려움: 람다식 내부에서 외부 변수를 변경할 수 없으므로 상태 관리에 제한이 있을 수 있습니다.
7. 결론
람다 표현식은 자바에서 함수형 프로그래밍을 보다 쉽게 구현할 수 있게 해 주는 강력한 도구입니다. 간결한 코드 작성, 가독성 향상 및 함수형 프로그래밍 스타일을 지원하는 데 큰 장점이 있습니다.
728x90