자바의 람다식에 대하여
[자바의 람다식 등장 배경]
자바의 람다식은 함수형 프로그래밍의 개념을 자바에 도입하기 위해 등장했습니다. 함수형 프로그래밍은 함수를 일급 객체로 취급하여 함수를 변수에 할당하고, 다른 함수의 매개변수로 전달하거나 함수의 반환값으로 사용하는 등의 작업을 허용하는 프로그래밍 패러다임입니다. 이는 코드의 간결성과 가독성을 향상시키고, 병렬 처리와 동시성을 더욱 쉽게 다룰 수 있는 장점을 제공합니다.
[람다식과 익명 클래스의 관계]
람다식은 익명 클래스를 간결하게 표현하는 방법 중 하나입니다. 익명 클래스는 인터페이스를 구현하거나 추상 클래스를 상속받는 클래스를 정의할 때 사용되는데, 이때 클래스의 인스턴스를 생성하면서 동시에 메소드를 정의할 수 있습니다. 람다식은 이러한 익명 클래스의 특성을 활용하여 코드를 더 간결하게 표현합니다.
[람다식의 문법]
람다식의 기본 문법은 다음과 같습니다:
(매개변수 목록) -> { 실행 코드 }
예를 들어, 정렬 기준으로 사용될 Comparator를 구현하는 익명 클래스를 람다식으로 표현하면 다음과 같습니다:
Comparator<String> comparator = (String s1, String s2) -> {
return s1.compareTo(s2);
};
람다식은 매개변수 목록과 실행 코드로 이루어져 있으며, 실행 코드가 단일 표현식이라면 중괄호({})를 생략할 수 있습니다. 또한, 매개변수의 타입을 추론할 수 있는 경우에는 매개변수의 타입을 생략할 수도 있습니다. 위의 예제를 간결하게 표현하면 다음과 같습니다:
Comparator<String> comparator = (s1, s2) -> s1.compareTo(s2);
이처럼 람다식을 사용하면 코드가 훨씬 간결해지고 가독성이 향상되며, 함수형 프로그래밍의 장점을 자바에서도 활용할 수 있게 됩니다.
[키워드 재정리]
일급 객체:
변수나 데이터 구조 안에 담을 수 있어야 합니다.
매개변수로 전달할 수 있어야 합니다.
반환값으로 사용할 수 있어야 합니다.
할당에 사용된 이름과 관계없이 고유한 구별이 가능해야 합니다.
익명 클래스:
클래스의 정의와 인스턴스 생성을 동시에 할 수 있습니다.
클래스 이름이 없으므로 한 번만 사용되거나 클래스의 이름이 필요하지 않은 간단한 작업에 유용합니다.
주로 인터페이스의 메소드를 오버라이딩하여 구현합니다.
@FunctionalInterface
댓글을 작성해보세요.