Java

[Java] 람다 표현식(Lambda Expressions)

누구세연 2024. 9. 16. 16:58

Java 람다 표현식은 Java 8에서 도입된 기능으로, 코드의 간결성과 가독성을 높여줍니다.

람다 표현식을 사용하면 더 간단하고 읽기 쉬운 코드 작성이 가능해집니다.

평소에 사용하던 람다 표현식과 기본 개념을 정리해 보겠습니다.👀

 

람다 표현식이란?

람다 표현식은 익명 함수를 간단하게 표현할 수 있는 방법입니다.

익명 함수란 이름이 없는 함수를 의미하며, 일반적으로 함수형 인터페이스를 구현하는 데 사용됩니다.

 

람다 표현식의 기본 형태는 다음과 같습니다.

(parameters) -> expression

여기서 parameters는 함수의 매개변수, expression은 함수의 본문입니다.

 

람다 표현식의 예시

다음은 람다 표현식을 사용한 간단한 예시입니다.

이 예시는 두 개의 숫자를 더하는 함수를 람다 표현식으로 정의합니다.

전통적인 방식

전통적으로는 다음과 같이 Calculator라는 인터페이스를 만들고 이를 구현하는 클래스를 작성합니다.

@FunctionalInterface
interface Calculator {
    int calculate(int a, int b);
}

public class Main {
    public static void main(String[] args) {
        Calculator add = new Calculator() {
            @Override
            public int calculate(int a, int b) {
                return a + b;
            }
        };

        System.out.println(add.calculate(5, 3)); // 출력: 8
    }
}

람다 표현식 사용

람다 표현식을 사용하면 코드가 훨씬 간단해집니다.

@FunctionalInterface
interface Calculator {
    int calculate(int a, int b);
}

public class Main {
    public static void main(String[] args) {
        Calculator add = (a, b) -> a + b;
        System.out.println(add.calculate(5, 3)); // 출력: 8
    }
}

 

 

람다 표현식의 장점

  1. 간결한 코드
    람다 표현식을 사용하면 불필요한 클래스와 메서드 정의를 줄일 수 있어 코드가 간결해집니다.
  2. 가독성 향상
    람다 표현식은 짧고 명확하여 코드의 가독성을 높입니다.
  3. 함수형 인터페이스와의 호환
    람다 표현식은 함수형 인터페이스와 함께 사용할 때 특히 유용합니다.
    함수형 인터페이스는 단 하나의 추상 메서드를 가진 인터페이스입니다.

 

함수형 인터페이스와 람다 표현식

람다 표현식을 사용하기 위해서는 함수형 인터페이스가 필요합니다.

함수형 인터페이스는 단 하나의 추상 메서드를 가진 인터페이스입니다.

Java 8에서는 여러 가지 함수형 인터페이스가 표준 라이브러리에 포함되어 있습니다.

예를 들어, Runnable, Callable, Comparator 등이 있습니다.

@FunctionalInterface
interface MyFunctionalInterface {
    void myMethod();
}

public class Main {
    public static void main(String[] args) {
        MyFunctionalInterface func = () -> System.out.println("람다 표현식으로 메서드 구현");
        func.myMethod(); // 출력: 람다 표현식으로 메서드 구현
    }
}

 

 

람다 표현식의 활용

람다 표현식은 다양한 상황에서 유용하게 사용됩니다. 특히 컬렉션과 스트림 API에서 많이 활용됩니다.

예를 들어, 리스트의 모든 요소를 출력하는 코드를 람다 표현식으로 간단히 구현할 수 있습니다.

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

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        names.forEach(name -> System.out.println(name));
    }
}

위 코드는 리스트의 각 요소를 순회하면서 출력합니다.

forEach 메서드에 람다 표현식을 전달하여 코드가 매우 간결해졌습니다.

 

 

💡 람다 표현식은 Java에서 함수를 간결하고 직관적으로 표현할 수 있는 강력한 도구입니다.
익명 함수를 사용하여 코드의 가독성을 높이고, 함수형 프로그래밍을 적용하여 더 간단한 코드를 작성할 수 있습니다.
Java 8 이후로 람다 표현식을 활용한 프로그래밍은 더 쉽고 유연해졌습니다.