14-7~8 java.util.function 패키지

oyeon·2021년 3월 20일
0

Java 개념

목록 보기
62/70
  • 자주 사용되는 다양한 함수형 인터페이스를 제공
Predicate<String> isEmptyStr = s -> s.length() == 0;
String s = "";

if(isEmptyStr.test(s))	// if(s.length() == 0)
	System.out.println("This is an empty String.");

Q. 아래의 빈 칸에 알맞은 함수형 인터페이스(java.util.function 패키지)를 적으시오.

[          ] f = () -> (int)(Math.random() * 100) + 1;
[          ] f = i -> System.out.print(i + ", ");
[          ] f = i -> i % 2 == 0;
[          ] f = i -> i / 10 * 10;

A. 정답

Supplier<Integer> f = () -> (int)(Math.random() * 100) + 1;
Comsumer<Integer> f = i -> System.out.print(i + ", ");
Predicate<Integer> f = i -> i % 2 == 0;
Function<Integer, Integer> f = i -> i / 10 * 10;
  • 매개변수가 2개인 함수형 인터페이스

  • 만약 매개변수 3개이상을 가진 함수형 인터페이스가 필요하면 다음과 같이 직접 만들면 된다.

@FunctionalInterface
interface TriFunction<T, U, V, R>{
    R apply(T t, U u, V v);
}
  • 매개변수의 타입과 반환 타입이 일치하는 함수형 인터페이스
    매개변수의 타입과 반환 타입이 일치 하므로 타입을 하나만 써주면 된다.
// UnaryOperator는 Function의 자손이다.
@FunctionalInterface
public interface UnaryOperator<T> extends Function<T, T>{
    static <T> UnaryOperator<T> identity() { // 항등함수
        return t -> t;
    }
}
profile
Enjoy to study

0개의 댓글