java8 函数式接口简介

在java8中,lambda表达式所用的接口,必须是函数式接口;

函数式接口的定义:接口中只有一个抽象方法的接口,称为函数式接口;

可以使用@FunctionalInterface注解修饰,对该接口做检查;如果接口里,有多个抽象方法,使用该注解,会有语法错误。

在java8中的函数式接口,有很多,比说,无参无返回值的(Runnable接口),有一个参数,无返回值的(Consumer),有多个参数有返回值的(BiFunction)……等等;

根据不用的作用,java8中,内置了4个核心接口

1.Consumer<T>  消费型接口,具体用法实例和介绍如下:

《JAVA8 Consumer接口》

2..Supplier<T> 供给型接口,具体用法实例如下

《JAVA8 Supplier接口》

3.Function<T,R> 函数型接口,具体介绍如下:

《JAVA8 Function接口以及同类型的特化的接口》

4.Predicate<T> 断言型接口,或者判断型的接口,具体用法如下

《JAVA8 Predicate接口》

另外,我还简单列举了一些其他的函数式接口的用法

《 JAVA8 UnaryOperator接口》

《JAVA8 BiConsumer 接口》

JDK 1.8之前已有的函数式接口:
    java.lang.Runnable
    java.util.concurrent.Callable
    java.security.PrivilegedAction
    java.util.Comparator
    java.io.FileFilter
    java.nio.file.PathMatcher
    java.lang.reflect.InvocationHandler
    java.beans.PropertyChangeListener
    java.awt.event.ActionListener
    javax.swing.event.ChangeListener

最后我们列举下java8中 java.util.function包下,内置所有的接口简介和表达的意思

1 BiConsumer<T,U>

代表了一个接受两个输入参数的操作,并且不返回任何结果

 

2 BiFunction<T,U,R>

 

代表了一个接受两个输入参数的方法,并且返回一个结果

 

3 BinaryOperator<T>

 

代表了一个作用于于两个同类型操作符的操作,并且返回了操作符同类型的结果

 

4 BiPredicate<T,U>

 

代表了一个两个参数的boolean值方法

 

5 BooleanSupplier

 

代表了boolean值结果的提供方

 

6 Consumer<T>

 

代表了接受一个输入参数并且无返回的操作

 

7 DoubleBinaryOperator

 

代表了作用于两个double值操作符的操作,并且返回了一个double值的结果。

 

8 DoubleConsumer

 

代表一个接受double值参数的操作,并且不返回结果。

 

9 DoubleFunction<R>

 

代表接受一个double值参数的方法,并且返回结果

 

10 DoublePredicate

 

代表一个拥有double值参数的boolean值方法

 

11 DoubleSupplier

 

代表一个double值结构的提供方

 

12 DoubleToIntFunction

 

接受一个double类型输入,返回一个int类型结果。

 

13 DoubleToLongFunction

 

接受一个double类型输入,返回一个long类型结果

 

14 DoubleUnaryOperator

 

接受一个参数同为类型double,返回值类型也为double 。

 

15 Function<T,R>

 

接受一个输入参数,返回一个结果。

 

16 IntBinaryOperator

 

接受两个参数同为类型int,返回值类型也为int 。

 

17 IntConsumer

 

接受一个int类型的输入参数,无返回值 。

 

18 IntFunction<R>

 

接受一个int类型输入参数,返回一个结果 。

 

19 IntPredicate

 

:接受一个int输入参数,返回一个布尔值的结果。

 

20 IntSupplier

 

无参数,返回一个int类型结果。

 

21 IntToDoubleFunction

 

接受一个int类型输入,返回一个double类型结果 。

 

22 IntToLongFunction

 

接受一个int类型输入,返回一个long类型结果。

 

23 IntUnaryOperator

 

接受一个参数同为类型int,返回值类型也为int 。

 

24 LongBinaryOperator

 

接受两个参数同为类型long,返回值类型也为long。

 

25 LongConsumer

 

接受一个long类型的输入参数,无返回值。

 

26 LongFunction<R>

 

接受一个long类型输入参数,返回一个结果。

 

27 LongPredicate

 

R接受一个long输入参数,返回一个布尔值类型结果。

 

28 LongSupplier

 

无参数,返回一个结果long类型的值。

 

29 LongToDoubleFunction

 

接受一个long类型输入,返回一个double类型结果。

 

30 LongToIntFunction

 

接受一个long类型输入,返回一个int类型结果。

 

31 LongUnaryOperator

 

接受一个参数同为类型long,返回值类型也为long。

 

32 ObjDoubleConsumer<T>

 

接受一个object类型和一个double类型的输入参数,无返回值。

 

33 ObjIntConsumer<T>

 

接受一个object类型和一个int类型的输入参数,无返回值。

 

34 ObjLongConsumer<T>

 

接受一个object类型和一个long类型的输入参数,无返回值。

 

35 Predicate<T>

 

接受一个输入参数,返回一个布尔值结果。

 

36 Supplier<T>

 

无参数,返回一个结果。

 

37 ToDoubleBiFunction<T,U>

 

接受两个输入参数,返回一个double类型结果

 

38 ToDoubleFunction<T>

 

接受一个输入参数,返回一个double类型结果

 

39 ToIntBiFunction<T,U>

 

接受两个输入参数,返回一个int类型结果。

 

40 ToIntFunction<T>

 

接受一个输入参数,返回一个int类型结果。

 

41 ToLongBiFunction<T,U>

 

接受两个输入参数,返回一个long类型结果。

 

42 ToLongFunction<T>

 

接受一个输入参数,返回一个long类型结果。

 

43 UnaryOperator<T>
接受一个参数为类型T,返回值类型也为T。 

 

  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葵花下的獾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值