람다식은 Java 8에서 도입된 기능으로, 익명 함수(anonymous function)를 간결하게 표현할 수 있게 해줍니다. 주로 함수를 인자로 넘길 때 유용하게 사용됩니다. 자바의 람다식은 함수형 인터페이스와 함께 사용됩니다. 함수형 인터페이스는 오직 하나의 추상 메서드만을 갖는 인터페이스입니다.
 

예제 1: 기본적인 람다식

import java.util.Arrays;
import java.util.List;

public class LambdaExample {
    public static void main(String[] args) {
        // 리스트를 생성합니다.
        List<String> names = Arrays.asList("A", "B", "C", "D");

        // 람다식을 사용하여 리스트의 각 요소를 출력합니다.
        names.forEach(name -> System.out.println(name));
    }
}

 

  • names.forEach(name -> System.out.println(name));는 forEach 메서드를 사용하여 리스트의 각 요소를 출력합니다. 여기서 name -> System.out.println(name)이 람다식입니다. name은 리스트의 각 요소를 나타내며, ->는 람다식을 정의하는 구분자입니다.

 

예제 2: 함수형 인터페이스와 람다식 

@FunctionalInterface
interface MathOperation {
    int operate(int a, int b);
}

public class LambdaExample {
    public static void main(String[] args) {
        // 덧셈 연산을 수행하는 람다식을 정의합니다.
        MathOperation add = (a, b) -> a + b;

        // 뺄셈 연산을 수행하는 람다식을 정의합니다.
        MathOperation subtract = (a, b) -> a - b;

        // 두 연산을 테스트합니다.
        System.out.println("덧셈: " + operate(5, 3, add));       // 출력: 덧셈: 8
        System.out.println("뺄셈: " + operate(5, 3, subtract));  // 출력: 뺄셈: 2
    }

    // MathOperation 인터페이스를 사용하여 연산을 수행하는 메서드입니다.
    public static int operate(int a, int b, MathOperation operation) {
        return operation.operate(a, b);
    }
}

 

  • @FunctionalInterface 애너테이션을 사용하여 MathOperation 인터페이스가 함수형 인터페이스임을 명시합니다.
  • MathOperation add = (a, b) -> a + b;는 두 정수를 더하는 람다식입니다.
  • MathOperation subtract = (a, b) -> a - b;는 두 정수를 빼는 람다식입니다.
  • operate 메서드는 MathOperation 인터페이스를 매개변수로 받아 해당 연산을 수행합니다.

+ Recent posts