Lambda Expression
Java 8부터 도입된 lambda expression은 함수형 프로그래밍의 개념을 Java에 도입한 것입니다. lambda expression은 익명 함수를 만들어 표현할 수 있는 간단하고 강력한 기능으로, 코드의 가독성과 유연성을 높일 수 있습니다.
lambda expression은 다음과 같은 형태로 작성됩니다.
(parameter1, parameter2, ...) -> { expression }
위 형태에서 parameter1, parameter2는 매개변수를 의미하며, ->는 화살표 연산자입니다. expression은 메소드 몸체에서 수행할 코드를 의미합니다.
다음은 lambda expression을 사용한 간단한 예시입니다.
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach((n) -> System.out.println(n));
위 코드는 1부터 5까지의 정수를 가진 리스트를 만들고, 각 요소를 출력하는 코드입니다. lambda expression을 사용하여 forEach() 메소드를 호출하고, 각 요소에 대해 n을 출력하도록 작성했습니다.
lambda expression은 매우 유연하게 사용될 수 있습니다. 예를 들어, 다음과 같이 Comparator를 사용하는 코드를 lambda expression으로 대체할 수 있습니다.
// Comparator를 사용한 코드
Collections.sort(list, new Comparator<String>() {
public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
});
// lambda expression을 사용한 코드
Collections.sort(list, (s1, s2) -> s1.compareTo(s2));
위 코드는 문자열 리스트를 정렬하는 코드입니다. Comparator를 사용하는 전통적인 방식과 lambda expression을 사용하는 방식을 비교해보면, lambda expression을 사용하면 코드가 훨씬 간결해지고 가독성이 높아짐을 알 수 있습니다.
Java에서 lambda expression은 함수형 인터페이스와 함께 사용됩니다. 함수형 인터페이스란 하나의 추상 메소드만을 가지는 인터페이스를 의미하며, lambda expression은 이 추상 메소드를 구현하는 익명 객체를 생성하는 것입니다. Java에서는 람다 표현식을 이용해 익명 객체를 생성하는 것을 편리하게 사용할 수 있도록 함수형 인터페이스를 많이 제공합니다.