자바에서는 함수를 값처럼 직접 전달할 수 없습니다.
즉, exe("hello", func)와 같은 형태는 지원되지 않으며,
반드시 메서드 실행 결과 (func())를 인자로 전달해야 합니다.
그러나 람다 표현식과 함수형 인터페이스를 사용하면 동작(메서드)을 변수처럼 다룰 수 있으며, 인자로 전달하는 것이 가능합니다.
이를 통해 유지보수성과 확장성을 높일 수 있습니다.
람다 표현식(Lambda Expression)은 메서드처럼 기능을 전달하는 방식을 제공하여 코드를 간결하게 만들고, 함수형 프로그래밍 스타일을 지원합니다. 이를 활용하면 특정 동작을 하나의 식으로 표현할 수 있습니다.
람다 표현식은 다음과 같은 형식으로 작성됩니다.
(parameter1, parameter2, ...) -> { body }
Arrays.sort()의 두 번째 인자로 람다 표현식을 전달하여 문자열의 길이를 기준으로 정렬합니다.
package lambda;
import java.util.Arrays;
public class LambdaExample {
public static void main(String[] args) {
// 정렬할 문자열 배열
String[] names = {"Alice", "Bob", "Charlie", "David"};
// 람다 표현식을 사용하여 문자열 길이순으로 정렬
Arrays.sort(names, (a, b) -> a.length() - b.length());
// 정렬된 배열 출력
for (String name : names) {
System.out.println(name);
}
}
}
Arrays.sort(names, (a, b) -> a.length() - b.length());a.length() - b.length() → 문자열 길이 차이를 반환하여 정렬