소개
자바(Java) 프로그래밍에서 람다 표현식은 함수형 프로그래밍의 핵심 요소 중 하나로 간결하고 효율적인 코드 작성을 가능하게 합니다. 이 글에서는 자바의 람다 표현식에 대해 자세히 알아보겠습니다.
![[Java] 람다 표현식 (Lambda Expressions) #37 2 [Java] 람다 표현식 (Lambda Expressions) #37](https://mmm.fromjeju.net/wp-content/uploads/2023/12/pexels-pixabay-270557-1024x682.jpg)
람다 표현식이란?
람다 표현식은 익명 함수를 간략하게 표현하는 방법으로, 함수형 인터페이스를 구현하는데 사용됩니다. 이는 자바 8에서 소개되었으며, 코드의 간결성과 가독성을 높이는 역할을 합니다.
기본 문법
람다 표현식의 기본 문법은 다음과 같습니다:
(parameter) -> expression
여기서 parameter
는 메소드에 전달되는 매개변수를 나타내고, expression
은 메소드가 수행하는 코드 블록입니다. 예를 들어, 두 수를 더하는 간단한 람다 표현식은 다음과 같습니다:
(int a, int b) -> a + b
함수형 인터페이스
람다 표현식은 함수형 인터페이스를 구현하는데 사용됩니다. 함수형 인터페이스는 하나의 추상 메소드만을 가지고 있으며, 람다 표현식은 이 추상 메소드를 구현합니다.
@FunctionalInterface
interface Calculator {
int add(int a, int b);
}
위의 예제에서 Calculator
는 함수형 인터페이스로, add
라는 추상 메소드를 정의하고 있습니다. 람다 표현식을 이용하여 이 인터페이스를 구현할 수 있습니다.
Calculator addFunction = (a, b) -> a + b;
int result = addFunction.add(3, 5); // 결과: 8
람다 표현식의 활용
1. 컬렉션의 간결한 반복
람다 표현식을 사용하면 컬렉션을 간단하게 반복할 수 있습니다.
List<String> languages = Arrays.asList("Java", "Kotlin", "Scala");
// 기존 방식
for (String language : languages) {
System.out.println(language);
}
// 람다 표현식
languages.forEach(language -> System.out.println(language));
2. 스레드와 병렬 프로그래밍
람다 표현식을 사용하면 스레드를 쉽게 다룰 수 있습니다.
// 기존 방식
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Thread is running");
}
}).start();
// 람다 표현식
new Thread(() -> System.out.println("Thread is running")).start();
3. 함수형 인터페이스 활용
자바의 다양한 함수형 인터페이스와 함께 람다 표현식을 사용하면 간편하게 코드를 작성할 수 있습니다.
@FunctionalInterface
interface Greeting {
void greet(String message);
}
Greeting greeting = message -> System.out.println("Hello, " + message);
greeting.greet("World"); // 출력: Hello, World
람다 표현식 실제 사용 예시
파일 필터링
람다 표현식을 사용하여 특정 조건에 맞는 파일을 필터링할 수 있습니다.
File dir = new File("/path/to/directory");
File[] txtFiles = dir.listFiles(file -> file.isFile() && file.getName().endsWith(".txt"));
이벤트 핸들링
UI 프로그래밍에서 이벤트 핸들링에 람다 표현식을 활용할 수 있습니다.
button.addActionListener(event -> System.out.println("Button clicked"));
이처럼 람다 표현식은 다양한 상황에서 코드를 간결하게 만들어주며, 함수형 프로그래밍의 장점을 자바에 도입한 중요한 기능 중 하나입니다. 학습과 익숙해짐으로써 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. 자바 프로그래머라면 람다 표현식에 대한 이해와 활용은 필수적입니다.
![[Java] 람다 표현식 (Lambda Expressions) #37 3 [Java] Java 디자인 패턴 (Design Patterns) #36](https://mmm.fromjeju.net/wp-content/uploads/2024/01/mmm-041-1024x1024.png)
![[Java] 람다 표현식 (Lambda Expressions) #37 4 [Java] 스트림 API(Stream): 데이터 처리의 혁신적인 도구 #38](https://mmm.fromjeju.net/wp-content/uploads/2024/01/mmm-044-1024x1024.png)