본문 바로가기
GD's IT Lectures : 기초부터 시리즈/자바(JAVA) 기초부터 ~

[자바(JAVA)] 함수형 프로그래밍과 람다

by GDNGY 2023. 4. 28.

16. 함수형 프로그래밍과 람다

자바 함수형 프로그래밍(Functional Programming)은 함수의 조합으로 프로그램을 작성하는 프로그래밍 패러다임입니다. 
자바 람다 표현식(Lambda Expression)은 함수형 프로그래밍을 지원하는 주요 기능 중 하나입니다. 

 

16.1. 함수형 프로그래밍 개념

함수형 프로그래밍(Functional Programming)은 프로그램을 작성할 때 순수 함수와 불변성을 중심으로 한 프로그래밍 패러다임입니다. 함수형 프로그래밍은 데이터 변화와 상태 변경을 최소화하여 버그 발생을 줄이고, 코드의 가독성과 테스트 용이성을 향상합니다. 자바 8부터 함수형 프로그래밍 기능이 추가되었으며, 람다 표현식, 메서드 참조, 스트림 API 등을 사용할 수 있습니다.

 

16.2. 람다 표현식

람다 표현식(Lambda Expression)은 익명 함수(Anonymous Function)를 표현하는 간결한 문법입니다. 람다 표현식은 함수형 인터페이스를 구현하는데 사용되며, 매개변수와 반환값이 있는 간단한 코드 블록을 나타냅니다.
람다 표현식의 기본 문법은 다음과 같습니다. 

(parameters) -> { expression or statements }
// 기존 익명 클래스 사용 방식
Runnable r1 = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello, Runnable!");
    }
};

// 람다 표현식 사용 방식
Runnable r2 = () -> { System.out.println("Hello, Lambda!"); };

 

16.3. 메서드 참조

드 참조(Method Reference)는 기존에 정의된 메소드를 람다 표현식으로 대체하는 기능입니다. 메서드 참조는 특정 클래스의 메서드나 객체의 인스턴스 메서드, 생성자를 참조할 수 있습니다. 메서드 참조의 문법은 "::" 기호를 사용합니다.

// 정적 메소드 참조
Function<String, Integer> parseInt = Integer::parseInt;
Integer result = parseInt.apply("123");

// 인스턴스 메소드 참조
Consumer<String> printer = System.out::println;
printer.accept("Hello, Method Reference!");

// 생성자 참조
Function<String, ArrayList<String>> createList = ArrayList::new;
ArrayList<String> list = createList.apply("Example");

 

16.4. 함수형 인터페이스

함수형 인터페이스(Functional Interface)는 하나의 추상 메소드만 가지고 있는 인터페이스입니다. 람다 표현식과 메서드 참조를 사용하여 함수형 인터페이스의 구현체를 생성할 수 있습니다. 자바에서는 java.util.function 패키지에 다양한 함수형 인터페이스를 제공합니다. 대표적인 함수형 인터페이스로는 Runnable, Comparator, Predicate, Function 등이 있습니다.

반응형

댓글