본문 바로가기

JAVA

람다3 함수형 인터페이스

JAVA.lang에 이미 정의되어 있는 함수형 인터페이스를 사용해 람다를 작성하자.

 

 

Runnable

void run()

매개변수도 없고 , 반환값도 없다.

 

Supplier<T>

T.get()

매개변수는 없고 , 반환값만 있음

 

consumer<T>

void accent(T t)

매개변수는 있고 , 반환값이 없음

 

Function<T,R>

R apply(T t)

일반적인 함수 , 하나의 매개변수를 받아 결과를 반환

 

Predicate<T>

boolean test(T t)

조건식을 표현하는데 사용됨, 매개변수는 하나 반환타입은 boolean

 

ex)

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

consumer<Integer> f = i -> system.out.println(i + "");

predicate<Integer> f = i -> i%2 == 0;

function<Integer , Integer> f = i -> i/10 * 10;

 

매개변수가 2개인 함수형 인터페이스 (bi 가 붙는다)

BiConsumer<T,U>

void accept<T t , U u>

두개의 매개변수만 있고 반환값이 없음.

 

BiPredicate<T,U>

boolean test(T t , U u)

조건식을 표현하는데 사용한다. 매개변수는 둘 , 반환값은 boolean

 

BiFunction<T,U,R> 

R apply(T t , U u)

두개의 매개변수를 받아서 하나의 결과를 반환

 

3개이상의 매개변수를 가질경우 사용자정의 함수정인터페이스를 만들어야 한다.

 

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

UnaryOperator<T> 

T apply(T t)

Function의 자손으로 Function과 달리 매개변수와 결과의 타입이 같다.

 

BInaryOperator<T>

T apply(Tt , Tt)

BiFunction의 자손 , BiFuntion과 달리 매개변수와 결과의 타입이 같다.

'JAVA' 카테고리의 다른 글

람다6 메소드 참조  (0) 2023.03.15
람다5 함수 두개를 연결 andThan  (0) 2023.03.15
람다4 Predicate 람다 조건식  (0) 2023.03.15
람다2  (0) 2023.03.14
람다1  (0) 2023.03.14