728x90
목차
1. 람다식(Lambda Expression) 이란?
람다식은 Java 8부터 도입된 기능으로, 익명 함수를 간결하게 표현할 수 있는 문법입니다. 기존의 익명 클래스보다 코드가 간결하고 가독성이 높아지는 장점이 있습니다.
2. 람다식 기본 문법
람다식의 기본적인 형태는 다음과 같습니다.
(매개변수) -> { 실행문 }
예제 1: 두 수의 합을 구하는 람다식
(int a, int b) -> { return a + b; }
개선 가능:
- 매개변수의 타입을 생략할 수 있음
- 실행문이 한 줄일 경우 {}와 return 키워드 생략 가능
(a, b) -> a + b
3. 람다식 사용 예제
(1) Runnable 인터페이스 사용 예제
기존 방식 (익명 클래스 사용)
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("Hello, world!");
}
};
람다식 적용 후
Runnable r = () -> System.out.println("Hello, world!");
(2) Comparator 인터페이스 활용 예제
기존 방식
Comparator<Integer> comparator = new Comparator<Integer>() {
@Override
public int compare(Integer a, Integer b) {
return a.compareTo(b);
}
};
람다식 적용 후
Comparator<Integer> comparator = (a, b) -> a.compareTo(b);
4. 람다식과 함수형 인터페이스
람다식은 함수형 인터페이스를 기반으로 동작합니다. 함수형 인터페이스는 단 하나의 추상 메서드만 가지는 인터페이스입니다. 대표적인 함수형 인터페이스는 다음과 같습니다.
함수형 인터페이스 추상 메서드 설명
Runnable | void run() | 매개변수 없고 반환값 없음 |
Supplier<T> | T get() | 매개변수 없고 반환값 있음 |
Consumer<T> | void accept(T t) | 매개변수 있고 반환값 없음 |
Function<T, R> | R apply(T t) | 매개변수 있고 반환값 있음 |
Predicate<T> | boolean test(T t) | 매개변수 있고 boolean 반환 |
5. Stream API와 람다식 활용
람다식은 Java의 Stream API와 함께 사용하면 더욱 강력한 기능을 발휘합니다.
(1) 리스트에서 짝수만 필터링하는 예제
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
numbers.stream()
.filter(n -> n % 2 == 0)
.forEach(System.out::println);
(2) 문자열 리스트를 대문자로 변환
List<String> names = Arrays.asList("java", "lambda", "expression");
names.stream()
.map(String::toUpperCase)
.forEach(System.out::println);
6. 정리 및 결론
- 람다식은 익명 함수를 간결하게 표현할 수 있는 Java 8 기능
- 함수형 인터페이스를 기반으로 동작
- 컬렉션, 스트림 API와 함께 사용하면 더욱 강력함
- 코드가 간결해지고 가독성이 높아짐
728x90
'Java Study' 카테고리의 다른 글
Comparator와 Comparable 완전 정복 가이드: 자바 객체 정렬의 핵심 (0) | 2025.02.08 |
---|---|
💻 IntelliJ IDEA 단축키 모음 🖥️ (1) | 2025.02.07 |
Reflection API in Java (2) | 2025.01.22 |
람다식(Lambda expression) -> 메서드 참조(Method reference) (2) | 2025.01.22 |
Java Enum 정리 (0) | 2025.01.22 |