본문 바로가기
개발/Java

[Java] 람다식(Lambda)이란?

by 1인용 놀이터 2025. 3. 7.
728x90
반응형

Lambda

 

람다 함수(또는 람다 표현식)는 익명 함수 라고도 불리며 메소드를 하나의 식(코드)처럼 표현할 수 있다.

 

Lambda식 기본 문법

(매개변수) -> { 실행할 코드 }

 

람다 예제

1. Java 기본 문법

interface MyFunction {
    int add(int a, int b);
}

public class Main {
    public static void main(String[] args) {
        MyFunction func = new MyFunction() {  // 익명 클래스 사용
            @Override
            public int add(int a, int b) {
                return a + b;
            }
        };
        System.out.println(func.add(5, 3));  // 결과: 8
    }
}

 

2. 람다식 사용

interface MyFunction {
    int add(int a, int b);
}

public class Main {
    public static void main(String[] args) {
        MyFunction func = (a, b) -> a + b;  // 람다 표현식 사용
        System.out.println(func.add(5, 3));  // 결과: 8
    }
}

 

람다 표현식의 특징

1. 코드를 간결하게 작성 가능

 - new 키워드 없이 짧은 코드로 함수 정의 가능.

2. 인터페이스가 1개의 추상 메서드만 가져야 사용 가능 (함수형 인터페이스)

 - @FunctionalInterface를 사용해 함수형 인터페이스임을 명확히 할 수 있음.

3. 불필요한 코드 제거 (익명 클래스 X)

 - 람다는 기존 익명 클래스를 대체하여 코드가 깔끔해짐.

 

람다 표현식 활용 예제

1. 리스트 정렬

import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Apple", "Orange", "Banana", "Grapes");

        // 람다를 이용한 정렬
        Collections.sort(names, (a, b) -> a.compareTo(b));

        System.out.println(names);
    }
}

 

2. forEach() 사용

import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Apple", "Orange", "Banana");

        // 람다를 이용한 반복문
        names.forEach(name -> System.out.println(name));
    }
}

 

 

728x90
반응형

'개발 > Java' 카테고리의 다른 글

[Java] ExecutorService 정리  (1) 2025.05.07
[Java] 싱글톤 패턴 정리.  (0) 2025.03.10