자바 8부터 도입된 람다 표현식은 함수형 프로그래밍을 위한 강력하고 간결한 기능입니다. 자바 람다 표현식에 대해 자세히 알아보고 예시를 통해 설명하겠습니다.
람다 표현식의 개념
람다 표현식은 익명 함수를 작성하기 위한 간단한 문법입니다. 메서드를 하나의 식으로 표현하여 함수형 인터페이스의 구현체로 사용할 수 있습니다. 람다 표현식은 함수형 인터페이스에 대한 구현을 간단하게 전달하고, 코드의 가독성과 유지보수성을 향상시킵니다.
람다 표현식의 문법
람다 표현식은 다음과 같은 구조로 이루어집니다.
(매개변수) -> { 실행문; }
매개변수는 메서드의 매개변수와 비슷한 형태로 작성하고, 중괄호 {} 안에 실행할 코드를 작성합니다. 예를 들어, 정수의 제곱 값을 계산하는 람다 표현식은 다음과 같이 작성할 수 있습니다.
int result = (int x) -> { return x * x; };
함수형 인터페이스와의 결합
람다 표현식은 함수형 인터페이스와 함께 사용됩니다. 함수형 인터페이스는 하나의 추상 메서드를 갖는 인터페이스를 말합니다. 예를 들어, 자바의 Runnable 인터페이스는 run()이라는 추상 메서드를 하나 갖고 있습니다. 이러한 함수형 인터페이스에 람다 표현식을 사용하여 구현체를 작성할 수 있습니다.
Runnable runnable = () -> {
System.out.println("Hello, Java Lambda!");
};
위의 예시에서는 Runnable 인터페이스의 run() 메서드를 구현하는 람다 표현식을 작성하고 있습니다. 중괄호 안에 실행할 코드를 작성하여 원하는 동작을 구현할 수 있습니다.
메서드 레퍼런스
메서드 레퍼런스는 기존의 메서드를 간결하게 표현하기 위한 방법입니다. 람다 표현식이 하나의 메서드를 호출하는 경우에는 메서드 레퍼런스를 사용하여 코드를 더 간결하게 표현할 수 있습니다. 예를 들어, 정적 메서드를 호출하는 람다 표현식은 다음과 같이 메서드 레퍼런스로 표현할 수 있습니다.
Function<Integer, Integer> square = Math::square;
위의 예시에서는 Math 클래스의 square() 메서드를 호출하는 람다 표현식을 메서드 레퍼런스로 표현하고 있습니다.
예시: 문자열 정렬하기
람다 표현식의 실제 활용 예시를 살펴보겠습니다. 문자열을 길이에 따라 정렬하는 예시를 작성해보겠습니다.
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave");
Collections.sort(names, (s1, s2) -> Integer.compare(s1.length(), s2.length()));
위의 예시에서는 Collections.sort() 메서드를 사용하여 names 리스트를 길이에 따라 정렬하고 있습니다. 람다 표현식을 사용하여 문자열의 길이를 비교하고, Integer.compare() 메서드를 호출하여 정렬 기준을 제공하고 있습니다.
마무리
자바의 람다 표현식에 대해 알아보았습니다. 람다 표현식은 간결하고 강력한 함수형 프로그래밍의 도구로서, 함수형 인터페이스와 결합하여 다양한 기능을 구현할 수 있습니다. 예시를 통해 람다 표현식의 사용법을 살펴보았으며, 실제로 람다 표현식을 활용하여 문자열 정렬 예시를 구현해보았습니다. 자바의 람다 표현식을 활용하여 코드를 간결하고 가독성 있게 작성할 수 있으므로, 함수형 프로그래밍에 대한 학습과 응용을 권장합니다.
'IT > java' 카테고리의 다른 글
Java 스트림: 데이터 처리를 위한 강력한 도구 (0) | 2023.06.12 |
---|---|
자바 함수형 프로그래밍: 선언적이고 강력한 프로그래밍 패러다임 (0) | 2023.06.12 |
Java I/O: 입출력 작업을 위한 자바의 기본 (0) | 2023.06.10 |
자바(Java) Set: 집합 개념의 데이터 구조 (0) | 2023.06.09 |
자바 이터레이터(Iterator): 컬렉션의 요소를 순회하며 접근하기 위한 인터페이스 (0) | 2023.06.09 |
댓글