java.util.function패키지가 제공하는 FunctionalInterface정리


java.util.function패키지가 제공하는 FunctionalInterface정리


FunctionalInterface는 JDK8부터 제공해주는 특별한 인터페이스이다. 오직하나의 추상메소드를 갖는 메소드를 FunctionnalInterface라고 말하며 FunctionalInterface를 매개변수로 받는 메소드는 FunctionalInterface의 구현체 대신에 람다식을 전달할 수 있다. FunctionalInterface는 직접 정의해서 사용해도 되지만, 기본적으로 java.util.function 패키지에 정의되어 있는 FunctionalInterface를 정리한다.


기본형 함수형 인터페이스

가장 기본이 되는 함수형 인터페이스로, 매개변수가 없거나 하나인 경우. 다른 함수형 인터페이스들도 여기서 파생된다.

FuntionalInterface

method

설명

 java.lang.Runnalbe

 void run()

 매개변수, 반환 모두 없음

 Supplier<T>

 T get()

 매개변수 없음, 반환 T

 Comsumer<T>

 void accept(T t)

 매개변수 T, 반환 없음

 Function<T, R>

 R apply(T t)

 매개변수 T, 반환 R

 Predicate<T>

 boolean test(T t)

 매개변수 T, 반환 boolean


 매개변수가 2개인 함수형 인터페이스

위에 정의된 기본형인 Comsumer<T>, Predicate<T>, Function<T>를 매개변수 2개 받도록 변경한 인터페이스 들.

FuntionalInterface

method

설명

 BiComsumer<T, U>

 void accept(T t, U u)

 매개변수 2개, 반환 없음

 BiPredicate<T, U>

 boolean test(T t, U u)

 매개변수 2개, 반환 boolean

 BiFunction<T, U, R>

 R apply(T t, U u)

 매개변수 2개, 반환 R


 입력과 반환이 동일한 UnaryOperation, BinaryOperation

UnaryOperation는 기본형 Function<T>와 유사하게 매개변수 1개와 반환타입을 갖는데, 매개변수와 반환값이 동일한 경우에 사용된다. BinaryOperation는 BiFuntion<T, U, R>과 유사하게 매개변수 2개, 반환타입을 갖는데 입력타입과 반환타입이 모두 동일한 경우이다.

FuntionalInterface

method

설명

 UnaryOperation<T>

 T apply(T t)

 매개변수 1개로 반환타입과 동일

 BinaryOperation<T>

 T apply(T t, T t)

 매개변수 2개, 매개변수와 반환유형 동일


함수형 인터페이스가 적용된 CollectionFramework API

인터페이스

메서드

 설명

 Collection

 boolean removeif(Predicate<E> filter)

 조건에 맞는 요소를 삭제

 List

 void replaceAll(UnaryOperator<E> opertator)

 모든 요소를 반환 값으로 대체

 Iterable

 void forEach(Consumer<T> action)

 모든 요소를 순회하여 action 수행

 Map

 V compute(K key, BiFunction<K,V,V> f)

 지정된 키의 값에 작업 f 수행

 V computeIfAbsent(K key, Function<K,V> f)

 키가 없으면, 작업 f수행 후 추가

 V computeIfPresent(K key, BiFunction<K,V,V> f)

 지정된 키가 있을 때, 작업 f 수행

 V merge(K key, V value, BiFunction<V,V,V> f)

 모든 요소에 병합작업 f 수행

 void forEach(BiConsumer<K,V> action)

 모든 요소에 작업 action 수행

 void replaceAll(BiFunction<K,V,V> f)

 모든 요소에 치환작업 f 수행


Map.compute* 메소드들은 주로 Map의 value를 특정 작업을 수행후 반환하는 역할을 한다.

이 글을 공유하기

댓글

Email by JB FACTORY