[JAVA] 람다식(Lambda Expression): 정의, 용도, 사용 방법 및 예시

Posted by nkjok
2025. 1. 24. 18:09 낙서장[1]/91. Java
반응형

Java 람다식(Lambda Expression): 정의, 용도, 사용 방법 및 예시

1. 람다식(Lambda Expression)의 정의

람다식은 익명 함수(Anonymous Function)를 생성하기 위한 표현식이다. 이는 메소드의 구현을 단순하고 간결하게 작성할 수 있도록 도와준다. Java 8부터 도입된 람다식은 함수형 프로그래밍 스타일을 지원하며, 코드의 가독성과 유지보수성을 향상시킨다.

2. 람다식의 용도

  • 간결한 코드: 불필요한 코드(익명 클래스 등)를 줄이고, 간결하게 표현할 수 있다.
  • 함수형 인터페이스: 람다식은 함수형 인터페이스(Single Abstract Method Interface)를 구현할 때 유용하다.
  • 스트림 API: Java 스트림 API와 함께 사용하여 컬렉션 데이터의 필터링, 매핑, 집계 등을 간편하게 처리할 수 있다.

3. 람다식의 사용 방법

람다식의 기본 형태는 (parameters) -> expression 또는 (parameters) -> { statements; }이다.

  • 매개변수가 하나인 경우: parameter -> expression
  • 매개변수가 여러 개인 경우: (parameter1, parameter2) -> expression
  • 코드 블록이 포함된 경우: (parameters) -> { statements; }

4. 람다식 예시

람다식을 사용하여 다양한 상황에서 코드의 간결성을 살펴보자.

4.1. Runnable 인터페이스 구현

익명 클래스를 사용한 Runnable 인터페이스 구현:

Runnable runnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello, world!");
    }
};

 

람다식을 사용한 Runnable 인터페이스 구현:

Runnable runnable = () -> System.out.println("Hello, world!");

 

4.2. Comparator 인터페이스 구현

익명 클래스를 사용한 Comparator 인터페이스 구현:

Comparator<String> comparator = new Comparator<String>() {
    @Override
    public int compare(String s1, String s2) {
        return s1.compareTo(s2);
    }
};

람다식을 사용한 Comparator 인터페이스 구현:

Comparator<String> comparator = (s1, s2) -> s1.compareTo(s2);

 

4.3. 스트림 API와 람다식

스트림 API와 람다식을 사용하여 리스트의 요소를 필터링하고, 매핑하고, 집계하는 예시:

List<String> names = Arrays.asList("John", "Jane", "Tom", "Alice");
List<String> filteredNames = names.stream()
                                  .filter(name -> name.startsWith("J"))
                                  .collect(Collectors.toList());

filteredNames.forEach(System.out::println);

위 예시에서 filter(name -> name.startsWith("J")) 부분이 람다식을 사용한 코드야. 이는 리스트의 각 요소가 "J"로 시작하는지 필터링하는 역할을 한다.

반응형

'낙서장[1] > 91. Java' 카테고리의 다른 글

[Java] 배열을 거꾸로 출력하기  (0) 2025.01.24