programming language/Java

람다문이란?

Lcoding 2024. 1. 27. 17:19
반응형

Java 8부터 람다 표현식이 도입되었으며, 이는 함수형 프로그래밍을 지원하는 중요한 기능 중 하나입니다.

람다 표현식은 익명 함수의 간결한 형태로, 주로 함수형 인터페이스(Functional Interface)의 인스턴스를 생성하기 위해 사용됩니다.

 

주요 특징 - 

1. 간결성: 불필요한 부분들을 제거하고 코드를 간결한 형태의 함수로 정의할 수 있습니다.

 

예시-

// 기존의 익명 클래스를 사용한 방식
Runnable runnable1 = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello, World!");
    }
};

// 람다 표현식을 사용한 방식
Runnable runnable2 = () -> System.out.println("Hello, World!");

 

2. 함수형 프로그래밍 지원: 람다 표현식은 함수형 프로그래밍을 지원하기 위해 도입되었습니다.

함수형 인터페이스를 통해 람다를 사용하면 함수를 변수에 할당하거나 다른 함수의 매개변수로 전달할 수 있습니다.

 

예시 -

// 함수형 인터페이스
interface MyFunctionalInterface {
    void myMethod();
}

// 람다 표현식으로 함수 구현
MyFunctionalInterface myFunction = () -> System.out.println("My Method");

// 함수 실행
myFunction.myMethod();

 

3. 병렬 프로그래밍: 람다 표현식은 Java 8에서 소개된 스트림 API와 함께 사용되어 병렬 프로그래밍을 지원합니다.

스트림 API를 사용하면 컬렉션을 이용한 간결하고 병렬화된 연산을 수행할 수 있습니다.

 

예시 - 

List<String> myList = Arrays.asList("Java", "Python", "C++", "JavaScript");

// 람다 표현식과 스트림 API를 사용하여 병렬 처리
myList.parallelStream().filter(s -> s.length() > 3).forEach(System.out::println);

 

4. 메서드 참조: 람다 표현식을 더 간결하게 만들기 위해 메서드 참조를 사용할 수 있습니다.

이는 메서드를 람다 표현식으로 대체하는 간결한 문법을 제공합니다.

 

예시 - 

// 람다 표현식
myList.forEach(s -> System.out.println(s));

// 메서드 참조
myList.forEach(System.out::println);

 

5. Effective Final: 람다 표현식에서는 외부 변수에 접근할 때 해당 변수가 effective final이어야 합니다.

이는 변수를 한 번 초기화한 후에 값을 변경하지 않아야 함을 의미합니다.

 

예시 - 

int x = 10;

// x는 effective final
MyFunctionalInterface myFunction = () -> System.out.println(x);

 

결론 - 람다를 사용할 경우 코드를 더욱 간결하고, 효율적으로 작성할 수 있도록 도와줍니다.

반응형