본문 바로가기
개발 Story/Java

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

by Gyun's 2023. 11. 14.

 

 

Java 람다식: 간결하고 효율적인 코드 작성

 

여행하는 개발자 Java 람다식

서문

Java 8부터 도입된 람다식(lambda expression)은 자바 프로그래밍을 혁신적으로 바꾸었습니다. 이번 글에서는 람다식의 정의, 기본 구조, 간단한 예제부터 심화 예제까지 자세히 살펴보겠습니다.

1. 람다식의 정의

람다식은 익명 함수의 형태를 갖춘 코드 블록으로, 메서드를 하나의 식으로 표현하는 방법입니다. 함수형 프로그래밍의 핵심 개념 중 하나로, 코드를 간결하게 작성하고 읽기 쉽게 만들어줍니다.

2. 람다식의 기본 구조

(parameter) -> expression

여기서 parameter는 메서드에 전달되는 인자를 나타내고, expression은 메서드가 수행하는 동작을 표현합니다.

3. 간단한 예제

// 기존의 방식
Runnable oldRunnable = new Runnable() {
  @Override
  public void run() {
    System.out.println("Hello, World!");
  }
};

// 람다식 사용
Runnable lambdaRunnable = () -> System.out.println("Hello, World!");

위 코드에서 lambdaRunnable은 람다식을 사용하여 Runnable 인터페이스를 구현한 것으로, 훨씬 간결한 코드를 제공합니다.

4. 심화 예제: 함수형 인터페이스와 람다식의 결합

@FunctionalInterface
interface MyFunctionalInterface {
  void myMethod();
}

public class LambdaExample {
  public static void main(String[] args) {
    MyFunctionalInterface myFunction = () -> System.out.println("My Method");
    myFunction.myMethod();
  }
}

위 예제에서 MyFunctionalInterface는 함수형 인터페이스로, 람다식을 이용하여 myMethod를 구현하고 있습니다.

5. 람다식의 활용: 컬렉션 처리와 스트림 API

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

// 기존의 방식
List<Integer> oddNumbersOld = new ArrayList<>();
for (Integer number : numbers) {
  if (number % 2 != 0) {
    oddNumbersOld.add(number);
  }
}

// 람다식과 스트림 사용
List<Integer> oddNumbersLambda = numbers.stream()
                                        .filter(number -> number % 2 != 0)
                                        .collect(Collectors.toList());

위 코드에서 람다식과 스트림 API를 사용하여 홀수만을 필터링한 결과를 얻을 수 있습니다.

결론

람다식은 자바 프로그래밍에서 코드를 간결하고 효율적으로 작성할 수 있게 해주는 강력한 기능입니다. 기본 구조부터 함수형 인터페이스와의 결합, 심지어 컬렉션 처리와 스트림 API에서의 응용까지 살펴보았습니다. 람다식을 적극적으로 활용하여 자바 코드를 더욱 효과적으로 작성해보세요.

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

[Java] 정규표현식(RegExp)이란?  (0) 2023.11.14