Java8常用函数式接口整理

首先我们要明白几个概念,函数式接口、Lambda表达式、高阶函数。

  1. 函数式接口:
    在Java中函数式接口的定义,就是在一个接口中只有一个抽象方法那么这个接口就是函数式接口。但是不包括默认方法(后续有讲解) 、静态方法和与Object类中的重名方法。
  2. Lambda表达式:
    写法:
    参数 箭头符号 方法体,
    (Object param1,Object param2) -> {sout(param1+param2);}; ,
    param1 -> {sout(param1+param2);} ; 如果只有一个参数括号可不写,
    param1 -> sout(param1+param2); 如果方法体只有一句话大括号可以不写,
    () -> sout(param1+param2); 没有参数小括号必须写,
    参数上可以声明参数类型也可以不声明,JDK可以通过上下文推断出参数的类型,
    作用:
    Lambda传递一个行为,而不仅仅是一个值。
    提升了抽象的层次。
    API重用性更好,更加灵。
  3. 高阶函数:
    一个函数的参数或返回值是一个函数,那么他就是一个高阶函数。

自带的函数式接口 java.util.function包下
函数式接口由@FunctionalInterface注解表示
在这里插入图片描述
接下来介绍几个常用的函数式接口

  1. Consumer
    他是接受一个参数没有返回值
    在这里插入图片描述比如说我们常用的forEach方法的参数就是一个consumer接口
    在这里插入图片描述
    在这里插入图片描述
    Consumer 还提供了一个默认方法
    返回一个由Consumer执行,在序列,其次是该操作after操作。 如果执行任何操作抛出异常,它被中继到由操作的调用者。 如果执行此操作抛出一个异常, after操作不会被执行
    就是先执行自己的accept方法在执行参数的accept方法
    在这里插入图片描述
    在这里插入图片描述
  2. Funcation
    他接受一个参数返回一个结果
    在这里插入图片描述
    提供了两个默认方法
    compose
    返回一个由函数,首先应用before函数的输入,然后该功能适用于结果。 如果任一功能的评价抛出一个异常,它被传递到由函数的调用者。
    andThen
    返回一个由函数,这个函数首先适用于它的输入,然后应用after功能的结果。 如果任一功能的评价抛出一个异常,它被传递到由函数的调用者。

示例在这里插入图片描述
3. BiFunction
他是一个传入两个参数 返回一个结果
在这里插入图片描述
他有一个默认方法andThen
返回一个由函数,这个函数首先适用于它的输入,然后应用after功能的结果。 如果任一功能的评价抛出一个异常,它被传递到由函数的调用者。
示例
在这里插入图片描述
4. BinaryOperator
BinaryOperator他是BiFunction一个扩展限于BiFunction两个参数类型和返回值类型相同
在这里插入图片描述
BinaryOperator 提供了两个静态方法
minBy
返回一个BinaryOperator返回根据指定的两个元件的较小的Comparator 。
maxBy
返回一个BinaryOperator返回根据指定的两个元件的更大的Comparator 。
示例
在这里插入图片描述
5. Prediceate
传入一个参数返回一个boolean值
在这里插入图片描述
Prediceate 提供了三个默认方法
and
返回一个由谓词表示短路逻辑和这个谓词和其他。 当评估由断言,如果断言是false ,那么other谓语不评估。
无论是上游的评估过程中抛出的任何异常都转达给呼叫者; 如果此断言的评价抛出一个异常, other谓词将不进行评估
or
返回一个由谓词表示短路逻辑的OR这个谓词和其他。 当评估由断言,如果断言是true ,那么other谓语不评估。
无论是上游的评估过程中抛出的任何异常都转达给呼叫者; 如果此断言的评价抛出一个异常, other谓词将不进行评估
negate
返回表示这个谓词逻辑否定谓语。
Prediceate 提供了一个静态方法
isEqual
返回的谓词,如果两个测试参数等于根据是Objects.equals(Object, Object) 。
示例
在这里插入图片描述
6. Supplier
没有参数得到一个结果
在这里插入图片描述
示例
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值