inblog logo
|
devleekangho
    기술정리

    [기술 정리] 1. 람다식(Lambda Expression)

    KangHo Lee's avatar
    KangHo Lee
    Nov 21, 2024
    [기술 정리] 1. 람다식(Lambda Expression)
    Contents
    1. 기본 문법2. 주요 함수형 인터페이스

    1. 기본 문법

    1. 람다는 인터페이스로 만듭니다.
      1. 💡
        익명 함수(Anonymous Function)를 간단하게 표현할 수 있도록 합니다.
    1. 인터페이스에는 메서드가 하나만 존재해야 합니다.
    1. 메서드가 인터페이스를 매개변수로 받고 있으면 행위(behavior)를 줘야 합니다.
    1. 람다에서 매개변수에 타입을 생략 가능합니다.
    1. @FunctionalInterface 표시 가능합니다.
    💡
    • @FunctionalInterface는 함수형 인터페이스를 정의할 때 사용됩니다.
    • 함수형 인터페이스는 단 하나의 추상 메서드를 가지는 인터페이스로, 람다 표현식으로 인스턴스를 생성할 수 있습니다.

    2. 주요 함수형 인터페이스

    (1) Consumer<T>

    • 인자를 받아 처리하고 결과를 반환하지 않는 함수
    // 입력(매개 변수)만 받고 출력이 없는 연산을 수행합니다. public interface MyConsumer<T> { void accept(T data); } MyConsumer<Integer> r1 = (data) -> { System.out.println("소비할 데이터 : " + data); }; r1.accept(1); // 소비할 데이터 : 1

    (2) Supplier<T>

    • 인자를 받지 않고 값을 반환하는 함수
    // 입력 없이 값을 반환(return) @FunctionalInterface public interface MySupplier<T> { T get(); } MySupplier<String> r2 = () -> { return "good"; }; MySupplier<String> r3 = () -> "good"; // return 생략 가능 String msg = r3.get(); System.out.println(msg); // good

    (3) Function<T, R>

    • 인자를 받아 다른 타입의 결과를 반환하는 함수
    // 입력을 받아서 결과를 반환 (매개변수도 있고 반환값도 있다) public interface MyFunction<T, R> { R apply(T t); } MyFunction<String, Integer> r4 = (s) -> s.length(); Integer size = r4.apply("Lambda"); System.out.println(size); // 6

    (4) Predicate<T>

    • 인자를 받아 boolean 값을 반환하는 함수
    // 입력을 받아 논리값을 반환 public interface MyPredicate<T> { boolean apply(T t); } MyPredicate<String> r5 = (s) -> s.length() < 10; Boolean b = r5.apply("Lambda"); System.out.println(b); // true
     
    Share article
    Contents
    1. 기본 문법2. 주요 함수형 인터페이스

    devleekangho

    RSS·Powered by Inblog