함수형 인터페이스(java.util.function)

Lee kyu min·2024년 5월 28일

Java study

목록 보기
41/41

주요 인터페이스

1. Function<T, R>: T 타입의 입력을 받아 R 타입의 출력을 반환

1) 메서드: R apply(T t)

ex)

Function<Integer, String> intToString = String::valueOf;
String result = intToString.apply(123); // "123"

2) 사용 예

  • 데이터 변환: 한 타입의 데이터를 다른 타입으로 변환할 때 사용.
  • 매핑 작업: 컬렉션의 요소를 다른 타입으로 매핑할 때 사용.

2. Consumer< T >: T 타입의 입력을 받아서 어떤 동작을 수행(반환값 없음)

1) 메서드: void accept(T t)

ex)

Consumer<String> print = System.out::println;
print.accept("Hello, World!"); // 출력: Hello, World!

2) 사용 예

  • 출력 작업: 데이터를 출력하거나 로깅할 때 사용.
  • 상태 변경: 객체의 상태를 변경하거나 외부 시스템에 영향을 줄 때 사용.

3. Supplier< T >: 입력값 없이 T 타입의 출력

1) 메서드: T get()

ex)

Supplier<Date> dateSupplier = Date::new;
Date date = dateSupplier.get(); // 새로운 Date 객체 생성

2) 사용 예

  • 객체 생성: 새로운 객체나 값을 생성할 때 사용.
  • 지연 평가: 값이 실제로 필요할 때까지 계산을 미루는 경우에 사용.

4. Predicate< T >: T 타입의 입력을 받아 boolean 값을 반환

1) 메서드: boolean test(T t)

ex)

Predicate<String> isEmpty = String::isEmpty;
boolean result = isEmpty.test(""); // true

2) 사용 예

  • 필터링: 컬렉션에서 특정 조건을 만족하는 요소를 필터링할 때 사용.
  • 조건 검사: 특정 조건을 만족하는지 검사할 때 사용.

* 두 개의 입력값을 받아 하나의 출력을 반환하고자 하면 해당 인터페이스에 Bi를 붙인다

ex)

BiFunction<Integer, Integer, Integer> sum = Integer::sum;

0개의 댓글