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 |