在 java.util.function 包中Java 内置了部分函数接口,以下为该函数接口的功能说明。
Java 8自带一些常用的函数式接口,放在java.util.function包里,包括Predicate
<T>、Function<T,R>、Supplier<T>、Consumer<T>和BinaryOperator<T>为了避免装箱操作,对Predicate<T>和Function<T, R>等通用函数式接口的原始类型
特化:IntPredicate、IntToLongFunction等。supplier 提供者,
consumer 消费者,
function 函数,
operation 运算符,
binary 二元(就是数学里二元一次方程那个二元,代表2个的意思),双重的。
- Predicate<T>
T->boolean
T 作为输入,返回的boolean值作为输出,代表一个参数谓词(布尔值函数)。
+ IntPredicate
+ LongPredicate
+ DoublePredicate
- Consumer<T>
T->void
T作为输入,执行某种动作但没有返回值,表示接受一个输入参数和不返回结果的操作。
+ IntConsumer
+ LongConsumer
+ DoubleConsumer
- Function<T,R>
T->R T作为输入,返回的R作为输出。表示接受一个参数,并产生一个结果的函数。
+ IntFunction<R> 表示接受一个int 值参数,并产生一个R 类型的函数。
+ IntToDoubleFunction 表示接受int值参数,并产生一个double值结果的函数。
+ IntToLongFunction
+ LongFunction<R>
+ LongToDoubleFunction
+ LongToIntFunction
+ DoubleFunction<R>
+ ToIntFunction<T>
+ ToDoubleFunction<T>
+ ToLongFunction<T>
- Supplier<T>
() -> T 没有任何输入,返回T。表示一个提供者的结果。
+ BooleanSupplier
+ IntSupplier
+ LongSupplier
+ DoubleSupplier
- UnaryOperator<T>
T->T 表示上产生相同类型的操作数的结果的单个操作数的操作。
+ IntUnaryOperator
+ LongUnaryOperator
+ DoubleUnaryOperator
- BinaryOperator<T>
(T,T)->T -两个T作为输入,返回一个T作为输出,对于“reduce”操作很有用,表示在相同类型的两个操作数的操作,生产相同类型的操作数的结果。
+ IntBinaryOperator,
+ LongBinaryOperator,
+ DoubleBinaryOperator
- BiPredicate<L,R>
(L,R)->boolean
代表两个参数谓词(布尔值函数)。
- BiConsumer<T,U>
(T,U)->void
+ ObjIntConsumer<T>
+ ObjLongConsumer<T>
+ ObjDoubleConsumer<T>
- BiFunction<T,U,R>
(T,U)->R
+ ToIntBiFunction<T,U>
+ ToLongBiFunction<T,U>
+ ToDoubleBiFunction<T,U>