logo

Java의 익명 함수

자바에서는 익명 함수 , 람다 식이라고도 합니다. 이는 보다 간결하고 읽기 쉬운 코드를 제공하기 위한 방법으로 Java 8에 도입되었습니다. 이를 통해 클래스나 인터페이스를 명시적으로 정의하지 않고도 한 줄의 코드로 함수를 정의할 수 있습니다.

J E S T

익명 함수란 무엇입니까?

익명 함수는 이름이 없고 식별자에 바인딩되지 않은 함수입니다. 일반적으로 인라인으로 정의되며 다른 함수에 인수로 전달되거나 함수에서 값으로 반환될 수 있습니다. Java에서 익명 함수는 익명 함수를 정의하는 간단한 방법인 람다 표현식으로 구현됩니다.

통사론

Java의 익명 함수 구문은 다음과 같습니다.

 (parameters) -> { body } 

매개변수는 함수에 대한 입력이고, 본문은 함수가 호출될 때 실행되는 코드입니다. 다음은 두 개의 정수를 입력으로 사용하고 그 합계를 반환하는 익명 함수의 예입니다.

 (int a, int b) -> { return a + b; } 

위의 익명 함수는 다른 함수에 인수로 전달되거나 변수에 할당될 수 있습니다.

 Function add = (a, b) -> a + b; 

이 예에서는 두 개의 정수를 입력으로 받아 그 합을 반환하는 함수인 add라는 변수를 정의합니다.

익명 함수의 장점

Java에서 익명 함수를 사용하면 다음과 같은 여러 가지 이점이 있습니다.

간결한 구문: 익명 함수는 별도의 클래스나 인터페이스를 정의하지 않고도 함수를 정의하는 간결한 방법을 제공합니다.

읽을 수 있는 코드: 익명 함수는 인라인으로 정의되므로 코드를 더 쉽게 읽고 이해할 수 있습니다.

유연성: 익명 함수는 다른 함수에 인수로 전달되거나 함수에서 값으로 반환될 수 있으므로 함수 사용 방법에 더 많은 유연성을 제공합니다.

향상된 성능: 익명 함수를 사용하면 함수를 정의하고 호출하는 데 필요한 메모리 양과 처리 능력이 줄어들어 성능이 향상될 수 있습니다.

다음은 정수 목록을 필터링하기 위해 익명 함수(람다 표현식)를 사용하는 방법을 보여주는 Java 코드 예제입니다.

AnonymousFunctionExample.java

 import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; public class AnonymousFunctionExample { public static void main(String[] args) { List numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); numbers.add(5); // Filter the list to only include even numbers Predicate isEven = (n) -> n % 2 == 0; List evenNumbers = filter(numbers, isEven); // Print the even numbers System.out.println('Even numbers:'); for (Integer number : evenNumbers) { System.out.println(number); } } // Filter a list using a predicate public static List filter(List list, Predicate predicate) { List result = new ArrayList(); for (T element : list) { if (predicate.test(element)) { result.add(element); } } return result; } } 

산출:

 Even numbers: 2 4 

이 코드에서는 정수 목록을 정의한 다음 익명 함수(람다 식)를 사용하여 짝수만 포함하도록 목록을 필터링하는 조건자를 정의합니다. 그런 다음 필터 메소드를 사용하여 조건자를 목록에 적용하고 새로운 짝수 목록을 반환합니다. 마지막으로 for 루프를 사용하여 짝수를 인쇄합니다.

다음은 익명 함수(람다 표현식)를 사용하여 문자열 목록을 정렬하는 방법을 보여주는 또 다른 Java 코드 예입니다.

AnonymousFunctionExample.java

 import java.util.ArrayList; import java.util.Comparator; import java.util.List; public class AnonymousFunctionExample { public static void main(String[] args) { List fruits = new ArrayList(); fruits.add('Apple'); fruits.add('Banana'); fruits.add('Grape'); fruits.add('Orange'); fruits.add('Pineapple'); // Sort the list of fruits alphabetically fruits.sort((f1, f2) -> f1.compareTo(f2)); // Print the sorted list of fruits System.out.println('Sorted list of fruits:'); for (String fruit : fruits) { System.out.println(fruit); } } } 

산출:

 Sorted list of fruits: Apple Banana Grape Orange Pineapple 

위 코드에서는 과일 목록을 정의한 다음 익명 함수(람다 식)를 사용하여 목록을 알파벳순으로 정렬하는 비교기를 정의했습니다. 그런 다음 sort 메서드를 사용하여 비교기를 목록에 적용하고 정렬합니다. 마지막으로 for 루프를 사용하여 정렬된 과일 목록을 인쇄합니다.

결론

Java의 익명 함수는 별도의 클래스나 인터페이스를 정의하지 않고도 함수를 정의하는 간결하고 읽기 쉬운 방법을 제공합니다. 이를 사용하여 코드 성능을 향상시키고 함수 사용 방법에 더 많은 유연성을 제공할 수 있습니다. Java 8에 람다 표현식이 도입되면서 익명 함수는 개발자가 보다 효율적이고 유지 관리하기 쉬운 코드를 작성하는 데 중요한 도구가 되었습니다.