Skip to content

함수형 인터페이스 정리 #6

Open
@suna-ji

Description

@suna-ji

📌 함수형 인터페이스 정리

제목: [자바] 함수형 인터페이스 정리


🔍 주제 설명

  • 주제 요약: Java8에서 도입된 함수형 인터페이스의 정의, 주요 메서드, 활용 예제를 정리합니다.
  • 주요 개념:
    Function<T, R> Predicate<T> Consumer<T> Supplier<T> UnaryOperator<T> BinaryOperator<T>

💻 예제 코드

1. Function<T, R>
[입력을 변환하여 반환]
입력값 T를 받아 변환된 값(R)을 반환하는 함수형 인터페이스입니다.
apply(T t) 메서드로 변환 로직을 실행하게 됩니다.

import java.util.function.Function;

public class FunctionExample {
    public static void main(String[] args) {
        Function<String, Integer> stringLength = s -> s.length();
        System.out.println("Length of 'Hello': " + stringLength.apply("Hello")); // 출력: 5
    }
}

2. Predicate
[조건 평가]
입력값 T를 받아 조건을 평가하고 결과를 boolean으로 반환합니다.
test(T t) 메서드를 통해 조건을 평가하고 boolean을 반환합니다.

import java.util.function.Predicate;

public class PredicateExample {
    public static void main(String[] args) {
        // Predicate<T> 정의: Integer 타입의 입력값이 짝수인지 평가
        Predicate<Integer> isEven = n -> n % 2 == 0;

        // 숫자 4가 짝수인지 확인
        System.out.println("Is 4 even? " + isEven.test(4)); // 출력: true
    }
}

3.Consumer
[입력값 처리]
입력값 T를 받아 처리하며 반환값이 없습니다.
�accept(T t) 메서드를 통해 작업을 수행합니다.

import java.util.function.Consumer;

public class ConsumerExample {
    public static void main(String[] args) {
        // Consumer<T> 정의: String 입력값을 출력
        Consumer<String> printer = s -> System.out.println("Message: " + s);

        // "Hello, World!" 메시지를 출력
        printer.accept("Hello, World!"); // 출력: Message: Hello, World!
    }
}

4. Supplier
[값 생성 후 반환]
입력값 없이 결과값(T)를 생성하고 반환합니다.
get() 메서드를 통해 결과값을 반환합니다.

import java.util.function.Supplier;

public class SupplierExample {
    public static void main(String[] args) {
        // Supplier<T> 정의: Double 타입의 난수를 반환
        Supplier<Double> randomValue = () -> Math.random();

        // 난수를 생성하여 출력
        System.out.println("Random value: " + randomValue.get());
    }
}

5. UnaryOperator
[같은 타입의 값을 변환]
입력값과 반환값이 같은 타입인 Function<T, T>의 특수한 형태입니다.
apply(T t) 메서드를 통해 변환 로직을 수행합니다.

import java.util.function.UnaryOperator;

public class UnaryOperatorExample {
    public static void main(String[] args) {
        // UnaryOperator<T> 정의: Integer 입력값의 제곱 반환
        UnaryOperator<Integer> square = n -> n * n;

        // 숫자 5의 제곱 계산
        System.out.println("Square of 5: " + square.apply(5)); // 출력: 25
    }
}

6. BinaryOperator
[같은 타입의 두 입력값을 연산]
두 개의 같은 타입의 값을 받아서 같은 타입의 결과를 반환하는 BiFunction<T, T, T>의 특수한 형태입니다.
apply(T t1, T t2) 메서드를 통해 연산을 수행합니다.

import java.util.function.BinaryOperator;

public class BinaryOperatorExample {
    public static void main(String[] args) {
        // BinaryOperator<T> 정의: Integer 타입 두 숫자를 더함
        BinaryOperator<Integer> add = (a, b) -> a + b;

        // 숫자 3과 5의 합 계산
        System.out.println("Sum of 3 and 5: " + add.apply(3, 5)); // 출력: 8
    }
}

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions