美文网首页Java 8 新特性
Java 8 函数式接口(二) 分析、归纳内置的函数式接口

Java 8 函数式接口(二) 分析、归纳内置的函数式接口

作者: 爱恨_交加 | 来源:发表于2021-12-30 10:16 被阅读0次

概述内置的函数式接口

注意:这里只讨论java.util.function包中的函数式接口。java.lang.Runnable也是函数式接口,但不在讨论范围内

java在java.util.function包下提供了很多函数式接口,其中最核心的函数式接口分别是:

  • 消费型:Consumer
  • 供给型:Supplier
  • 函数型:Function
  • 断言型:Predicate

其它函数式接口都可以参照这几个接口进行拓展,拓展方式表现在:

  • 增加入参个数
  • 指定入参的数据类型
  • 指定返回结果的数据类型
  • 基于函数型接口设计思想增加多元运算能力

提示:只要掌握了这几个核心的函数式接口,也就很容易理解其它内置的函数式接口了,也可以定义自己的函数式接口

内置的四大核心函数式接口

函数式接口 参数类型 返回类型 描述
Consumer<T> T void 对类型为 T 参数应用操作
Supplier<T> T 返回 T 类型的结果
Function<T, R> T R 对类型为 T 参数应用操作,返回 R 类型的结果
Predicate<T> T boolean 对类型为 T 参数应用操作,返回 boolean 类型的结果

内置的其它函数式接口

Consumer 变种

函数式接口 参数类型 返回类型 描述
IntConsumer int void 对类型为 int 参数应用操作
LongConsumer long void 对类型为 long 参数应用操作
DoubleConsumer double void 对类型为 double 参数应用操作
BiConsumer<T, U> T, U void 对类型为 T, U 参数应用操作
ObjIntConsumer<T> T,int void 对类型为 T,int 参数应用操作
ObjLongConsumer<T> T,long void 对类型为 T,long 参数应用操作
ObjDoubleConsumer<T> T,double void 对类型为 T,double 参数应用操作

Supplier 变种

函数式接口 参数类型 返回类型 描述
IntSupplier int 返回 int 类型的结果
LongSupplier long 返回 long 类型的结果
DoubleSupplier double 返回 double 类型的结果
BooleanSupplier boolean 返回 boolean 类型的结果

Function 变种

函数式接口 参数类型 返回类型 描述
ToIntFunction<T> T int 对类型为 T 参数应用操作,返回 int 类型的结果
ToLongFunction<T> T long 对类型为 T 参数应用操作,返回 long 类型的结果
ToDoubleFunction<T> T double 对类型为 T 参数应用操作,返回 double 类型的结果
IntFunction<R> int R 对类型为 int 参数应用操作,返回 R 类型的结果
IntToLongFunction int long 对类型为 int 参数应用操作,返回 long 类型的结果
IntToDoubleFunction int double 对类型为 int 参数应用操作,返回 double 类型的结果
LongFunction<R> long R 对类型为 long 参数应用操作,返回 R 类型的结果
LongToIntFunction long int 对类型为 long 参数应用操作,返回 int 类型的结果
LongToDoubleFunction long double 对类型为 long 参数应用操作,返回 double 类型的结果
DoubleFunction<R> double R 对类型为 double 参数应用操作,返回 R 类型的结果
DoubleToIntFunction double int 对类型为 double 参数应用操作,返回 int 类型的结果
DoubleToLongFunction double long 对类型为 double 参数应用操作,返回 long 类型的结果
BiFunction<T, U, R> T, U R 对类型为 T, U 参数应用操作,返回 R 类型的结果
ToIntBiFunction<T, U> T, U int 对类型为 T, U 参数应用操作,返回 int 类型的结果
ToLongBiFunction<T, U> T, U long 对类型为 T, U 参数应用操作,返回 long 类型的结果
ToDoubleBiFunction<T, U> T, U double 对类型为 T, U 参数应用操作,返回 double 类型的结果

Predicate 变种

函数式接口 参数类型 返回类型 描述
IntPredicate int boolean 对类型为 int 参数应用操作,返回 boolean 类型的结果
LongPredicate long boolean 对类型为 long 参数应用操作,返回 boolean 类型的结果
DoublePredicate double boolean 对类型为 double 参数应用操作,返回 boolean 类型的结果
BiPredicate<T, U> T, U boolean 对类型为 T, U 参数应用操作,返回 boolean 结果

多元运算(Function 变种)

函数式接口 参数类型 返回类型 描述
UnaryOperator<T>(Function子接口) T T 对类型为 T 参数应用操作,进行一元运算并返回 T 类型的结果
IntUnaryOperator int int 对类型为 int 参数应用操作,返回 int 类型的结果
LongUnaryOperator long long 对类型为 long 参数应用操作,进行一元运算并返回 long 类型的结果
DoubleUnaryOperator double double 对类型为 double 参数应用操作,进行一元运算并返回 double 类型的结果
BinaryOperator(BiFunction子接口) T, T T 对类型为 T 参数应用操作,进行二元运算并返回 T 类型的结果
IntBinaryOperator int,int int 对类型为 int 参数应用操作,,进行二元运算并返回 int 类型的结果
LongBinaryOperator long,long long 对类型为 long 参数应用操作,,进行二元运算并返回 long 类型的结果
DoubleBinaryOperator double, double double 对类型为 double 参数应用操作,,进行二元运算并返回 double 类型的结果

上一节:Java 8 函数式接口(一) 概述
下一节:Java 8 函数式接口(三) 四大内置的核心函数式接口的样例

相关文章

网友评论

    本文标题:Java 8 函数式接口(二) 分析、归纳内置的函数式接口

    本文链接:https://www.haomeiwen.com/subject/dhzvqrtx.html