Java Lambda从入门到精通八 Java8常用函数式接口总结

Java 8常用函数式接口总结,需要说明的是,下面的列表有的同学看着可能晕菜,如果看不明白,那么需要先复习一下前面的章节,前面主要讲到的有Predicate、Consumer、Function,下面增加了更多的Java 8中的函数式接口的声明,我们要看明白,只要区分入参和返回类型即可,当然如果这些预置的函数式接口不满足你的需求,你完全可以自己定义函数式接口,来应用到lambda中。

Predicate

  • 抽象方法
    • boolean test(T t);
  • 谓词(predicate) 在数学上常常用来代表一个类似函数的东西,它接受一个参数值,并返回true或false
  • 函数描述符
    • T->boolean
  • 原始类型–函数式接口
    • IntPredicate
    • LongPredicate
    • DoublePredicate

Consumer

  • 抽象方法
    • void accept(T t);
  • 函数描述符
    • T->void
  • 原始类型–函数式接口
    • InttConsumer
    • LongtConsumer
    • DoubletConsumer

Function

  • 抽象方法
    • R apply(T t);
  • 函数描述符
    • T->R
  • 原始类型–函数式接口
    • IntFunction, IntToDoubleFunction, IntToLongFunction, LongFunction, LongToDoubleFunction, LongToIntFunction, DoubleFunction, ToIntFunction, ToDoubleFunction, ToLongFunction

Supplier

  • 抽象方法
  • 函数描述符
    • ()->T
  • 原始类型–函数式接口
    • BooleanSupplier, IntSupplier, LongSupplier, DoubleSupplier

UnaryOperator

  • 抽象方法
    • R apply(T t);
  • 函数描述符
    • T->R
  • 原始类型–函数式接口
    • IntUnaryOperator, LongUnaryOperator, DoubleUnaryOperator

BinaryOperator

  • 抽象方法
  • 函数描述符
    • (T,T)->T
  • 原始类型–函数式接口
    • IntBinaryOperator, LongBinaryOperator, DoubleBinaryOperator

BiPredicate<L,R>

  • 抽象方法
  • 函数描述符
    • (L,R)->boolean
  • 原始类型–函数式接口

BiConsumer<T,U>

  • 抽象方法
  • 函数描述符
    • (T,U)->void
  • 原始类型–函数式接口
    • ObjIntConsumer, ObjLongConsumer, ObjDoubleConsumer

BiFunction<T,U,R>

  • 抽象方法
  • 函数描述符
    • (T,U)->R
  • 原始类型–函数式接口
    • ToIntBiFunction<T,U>, ToLongBiFunction<T,U>, ToDoubleBiFunction<T,U>