준비하는 대학생

[JAVA] 람다 표현식 본문

Programming/JAVA

[JAVA] 람다 표현식

Bangii 2023. 4. 17. 09:49

람다 표현식이란?

람다 표현식은 간단한 함수를 익명 클래스의 인스턴스 대신 표현하는 데 사용되는 간결한 문법입니다. 람다 표현식은 인터페이스를 구현하는 방식으로 작동하며, 이 인터페이스에는 단 하나의 추상 메서드가 있어야 합니다. 이러한 인터페이스를 함수형 인터페이스라고 부릅니다.

람다 표현식의 문법

람다 표현식의 기본 문법은 다음과 같습니다.

(parameters) -> expression
또는
(parameters) -> { statements; }
  • parameters: 함수의 매개변수를 정의합니다. 괄호 안에 매개변수를 정의하며, 여러 개의 매개변수가 있을 경우 쉼표로 구분합니다. 매개변수의 타입을 명시할 수도 있지만, 대부분의 경우 자바 컴파일러가 유추할 수 있습니다.
  • >: 화살표 기호는 매개변수와 람다 본문을 구분합니다.
  • expression 또는 { statements; }: 람다 본문입니다. 간단한 표현식이나 여러 줄의 문장을 포함할 수 있습니다. 여러 줄의 문장일 경우 중괄호를 사용합니다.

람다 표현식 예제

// 예제 1: 매개변수 없는 람다 표현식
Runnable r = () -> System.out.println("Hello, Lambda!");

// 예제 2: 매개변수가 있는 람다 표현식
Consumer<String> print = (String s) -> System.out.println(s);

// 예제 3: 매개변수 타입을 생략한 람다 표현식
BinaryOperator<Integer> add = (a, b) -> a + b;

람다 표현식의 장점

람다 표현식은 다음과 같은 장점이 있습니다.

  1. 간결한 코드: 기존의 익명 클래스보다 간결하게 코드를 작성할 수 있습니다.
  2. 함수형 프로그래밍: 람다 표현식을 이용해 순수 함수를 작성하고, 높은 수준의 추상화를 적용할 수 있습니다. 이를 통해 코드의 가독성과 유지 보수성이 향상됩니다.

람다 표현식과 forEach문 활용

Java 8에서 도입된 forEach 메서드를 활용하면 람다 표현식과 함께 간편하게 컬렉션을 순회할 수 있습니다. forEach 메서드는 Iterable 인터페이스에 정의되어 있으며, 대부분의 컬렉션 클래스들이 이를 구현하고 있습니다.

forEach문 사용 예제

import java.util.ArrayList;
import java.util.List;

public class LambdaForEachExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("James");
        names.add("Sophia");
        names.add("Jackson");
        names.add("Olivia");

        // 람다 표현식과 forEach문을 사용하여 리스트 출력하기
        names.forEach(name -> System.out.println(name));

        // 메서드 참조를 사용하여 리스트 출력하기 (더 간결한 방법)
        names.forEach(System.out::println);
    }
}

위의 예제에서는 먼저 ArrayList를 생성하고 여러 이름을 추가한 후, forEach 메서드와 람다 표현식을 사용하여 리스트의 모든 요소를 출력합니다. 또한, 메서드 참조를 사용하여 더 간결한 방법으로 리스트를 출력하는 방법도 보여줍니다.

이렇게 람다 표현식과 forEach 메서드를 함께 사용하면 코드를 더 간결하고 가독성이 좋게 작성할 수 있습니다. 이를 통해 자바 프로그래밍의 효율성을 높일 수 있습니다.

'Programming > JAVA' 카테고리의 다른 글

[JAVA] enum (열거형)  (0) 2023.04.15
Comments