>  기사  >  Java  >  Java 및 예제의 Lambda 함수란 무엇입니까?

Java 및 예제의 Lambda 함수란 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-09-20 06:41:31321검색

What Is a Lambda Function in Java and Example.

1. Lambda 함수 이해

Lambda 함수 또는 람다 표현식은 Java에서 익명 메서드를 작성하기 위한 명확하고 간결한 구문을 제공하는 방법입니다. 이를 통해 보다 읽기 쉽고 표현력이 풍부한 방식으로 기능적 인터페이스 구현을 작성할 수 있습니다.

1.1 람다 함수란 무엇입니까?

Java의 람다 함수는 매개변수를 받아 값을 반환하는 짧은 코드 블록입니다. 이는 기본적으로 이름이 없는 메서드이므로 기능을 메서드에 인수로 전달하거나 변수로 저장할 수 있습니다.

구문

람다 함수의 기본 구문은 다음과 같습니다.

(parameters) -> expression

또는 진술이 여러 개인 경우:

(parameters) -> {
    // multiple statements
}

1.2 기능적 인터페이스

람다 표현식을 사용하려면 기능적 인터페이스가 필요합니다. 기능적 인터페이스는 정확히 하나의 추상 메소드를 갖는 인터페이스입니다. 예로는 단일 추상 메소드를 사용하는 Runnable, Callable 및 사용자 정의 인터페이스가 있습니다.

1.3 Lambda 함수의 이점

  • 간결함 : 람다 표현식은 상용구 코드를 줄이는 데 도움이 됩니다.
  • 가독성 : 코드를 더 읽기 쉽고 표현력 있게 만듭니다.
  • 사용 편의성 : 스트림 작업 및 이벤트 처리와 같은 시나리오에 유용합니다.

2. Java에서 Lambda 함수 사용

2.1 기본 예

Java의 람다 함수에 대한 간단한 예부터 시작해 보겠습니다. Runnable 인터페이스를 사용하여 다음을 보여드리겠습니다.

public class LambdaExample {
    public static void main(String[] args) {
        // Traditional way
        Runnable oldRunnable = new Runnable() {
            @Override
            public void run() {
                System.out.println("Running in a thread!");
            }
        };
        new Thread(oldRunnable).start();

        // Using Lambda Expression
        Runnable lambdaRunnable = () -> System.out.println("Running in a thread with Lambda!");
        new Thread(lambdaRunnable).start();
    }
}

출력

Running in a thread!
Running in a thread with Lambda!

2.2 고급 예: 컬렉션과 함께 Lambda 사용

Lambda 함수는 컬렉션 작업 시 특히 유용합니다. 다음은 람다 표현식을 사용하여 문자열 목록을 정렬하는 방법을 보여주는 예입니다.

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

public class LambdaListExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("John", "Jane", "Paul", "Alice");

        // Using lambda to sort the list
        names.sort((name1, name2) -> name1.compareTo(name2));

        // Printing sorted names
        names.forEach(name -> System.out.println(name));
    }
}

출력

Alice
Jane
John
Paul

2.3 실제 데모: 스트림을 사용한 필터링

Lambda 표현식은 필터링 및 매핑과 같은 작업을 위해 Java Streams와 결합될 때 빛을 발합니다. 람다를 사용하여 정수 목록을 필터링하고 처리하는 방법은 다음과 같습니다.

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class LambdaStreamExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        // Filtering even numbers and squaring them
        List<Integer> squaredEvens = numbers.stream()
            .filter(n -> n % 2 == 0)
            .map(n -> n * n)
            .collect(Collectors.toList());

        // Printing the result
        squaredEvens.forEach(System.out::println);
    }
}

출력

4
16
36
64
100

3. 결론

Java의 Lambda 함수는 익명 메서드와 기능적 인터페이스를 처리하는 보다 간결하고 표현력이 풍부한 방법을 제공합니다. 특히 컬렉션 및 스트림 작업을 처리할 때 코드를 크게 단순화하고 가독성을 향상시킬 수 있습니다.

질문이 있거나 추가 설명이 필요한 경우 아래에 댓글을 남겨주세요!

에서 더 많은 게시물을 읽어보세요. Java의 Lambda 함수란 무엇인가요?

위 내용은 Java 및 예제의 Lambda 함수란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.