Lambda -- 04JDK8函数包

JDK8新增加了一个包,java.util.function,这个包下所有的接口都是函数式接口,都是为了引入lambda表达式而设计的。

Lambda表达式的一般用法:作为一个《行为值》对象,当作实参传入某个方法。


 

Lambda表达式的入参:单入参
作用函数式接口

抽象方法

Lambda表达式

方法签名

Lambda形态

 

默认方法:(柯里化思想)

调用该方法得到另一个函数

 

消费Comsumer<T>void accept(T t);(T)-> void

andThen(Consumer<T> after){ }

计算Function<T, R>R apply(T t);(T)-> R

compose(Function<V, T> before){ }

andThen(Function<R, V> after){ }

static <T> Function<T, T> identity() {
        return t -> t;
}

条件Predicate<T>boolean test(T t);(T)-> boolean

与 and(Predicate<T> other)

或 or(Predicate<T> other)

非 negate()

工厂Supplier<T>T get();( )-> T 

一元

操作

UnaryOperator<T>

extends

Function<T,T>

T apply(T t);(T)-> T 

 

Lambda表达式的入参:双入参
作用函数式接口

抽象方法

Lambda表达式

方法签名

Lambda形态

 

默认方法:(柯里化思想)

调用该方法得到另一个函数

 

消费BiConsumer<T, U>void accept(T t, U u);(T,U)-> void 
计算BiFunction<T, U, R>R apply(T t, U u);(T,U)-> R 
条件BiPredicate<T, U>boolean test(T t, U u);(T,U)-> boolean 

两元

操作

BinaryOperator<T>

extends

BiFunction<T,T,T>

T apply(T t, T u);(T,T)-> T 

 

其它函数式接口(不在java.util.function包下)
作用函数式接口

抽象方法

Lambda表达式

方法签名

Lambda形态

 

默认方法:(柯里化思想)

调用该方法得到另一个函数

 

比较

java.util.

Comparator<T>

intcompare(T o1, T o2)
(T,T)-> int 
运行

java.lang.

Runnable

voidrun()
( )-> void 

凡是你写的lambda表达式,通过java能自动推导出符合以上函数式接口中的抽象方法签名的,就不用另行自己新定义函数式接口,直接套用即可。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值