JAVA

[JAVA 기초] java.util.function 패키지(Runnable, Supplier<T>, Consumer<T>, Function<T,R>, Predicate<T>)

멋쟁휘개발자 2023. 11. 7. 23:33

 

java.util.function 패키지(1/3)

자주 사용되는 함수형 인터페이스

남궁성의 자바의 정석 강의 중

 

예제

//Supplier<Integer>
f = () -> (int) (Math.random()*100) + 1;

//Consumer<Integer>
f = i -> System.out.print(i + ", ");

//Predicate<Integer>
f = i -> i%2 == 0;

//Function<Integer>
f = i -> i/10*10;

 

 

java.util.function 패키지(2/3)

두 개의 매개변수를 받는 함수형 인터페이스

 

 

만약 세 개 이상의 매개변수를 받는 인터페이스를 만들고 싶으면 아래와 같이 인터페이스를 정의하여 사용하면 된다.

@FuntionalInterface
interface TriFunction<T,U,V,R> {
	R apply(T t, U u, V v);
}

 

 

java.util.function 패키지(3/3)

매개변수의 타입과 반환타입이 일치하는 함수형 인터페이스

 

구현 코드

@FuntionalInterface
public interface UnaryOperator<T> exrends Finction<T,T> { //Finction<T,R> 보통은 T를 넣으면 R이 나온다

	//t가 들어오면 그대로 t를 반환하는 메서드 = 항등함수
	static <T> UnaryOperator<T> identity () {
    	return t -> t;
    }
}