Lambda 함수 또는 람다 표현식은 Java에서 익명 메서드를 작성하기 위한 명확하고 간결한 구문을 제공하는 방법입니다. 이를 통해 보다 읽기 쉽고 표현력이 풍부한 방식으로 기능적 인터페이스 구현을 작성할 수 있습니다.
Java의 람다 함수는 매개변수를 받아 값을 반환하는 짧은 코드 블록입니다. 이는 기본적으로 이름이 없는 메서드이므로 기능을 메서드에 인수로 전달하거나 변수로 저장할 수 있습니다.
구문
람다 함수의 기본 구문은 다음과 같습니다.
(parameters) -> expression
또는 진술이 여러 개인 경우:
(parameters) -> { // multiple statements }
람다 표현식을 사용하려면 기능적 인터페이스가 필요합니다. 기능적 인터페이스는 정확히 하나의 추상 메소드를 갖는 인터페이스입니다. 예로는 단일 추상 메소드를 사용하는 Runnable, Callable 및 사용자 정의 인터페이스가 있습니다.
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!
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
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
Java의 Lambda 함수는 익명 메서드와 기능적 인터페이스를 처리하는 보다 간결하고 표현력이 풍부한 방법을 제공합니다. 특히 컬렉션 및 스트림 작업을 처리할 때 코드를 크게 단순화하고 가독성을 향상시킬 수 있습니다.
질문이 있거나 추가 설명이 필요한 경우 아래에 댓글을 남겨주세요!
에서 더 많은 게시물을 읽어보세요. Java의 Lambda 함수란 무엇인가요?
위 내용은 Java 및 예제의 Lambda 함수란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!