Lambda中Function函数接口(一)——基本介绍

在JDK8中加入了Lambda表达式,使用函数接口编程。是一个匿名函数,即没有函数名的函数。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。,使用它设计的代码会更加简洁。使用Lambda语法来代替匿名的内部类,代码不仅简洁,而且还可读。

需要注意的是只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。

以下是lambda表达式的重要特征:

  • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
  • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
  • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
  • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

比如:

// 1. 不需要参数,返回值为 5  
() -> 5  
  
// 2. 接收一个参数(数字类型),返回其2倍的值  
x -> 2 * x  
  
// 3. 接受2个参数(数字),并返回他们的差值  
(x, y) -> x – y  
  
// 4. 接收2个int型整数,返回他们的和  
(int x, int y) -> x + y  
  
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)  
(String s) -> System.out.print(s)

关于更多的Lambda表达式如何让使用这里就不做过多介绍,可以参考菜鸟编程

下面来说说Function接口。

在JDK8中共提供43个现有的函数接口,可以满足基本的开发需要,如果需要特别的函数接口可以自定义,使用@FunctionalInterface注解。

总共分为6大类:

  1. Function:(函数)代表其参数与返回类型不一致的函数(17个接口)。Lambda中Function函数接口(二)——Function系列接口
  2. UnaryOperator:(一元操作)表示结果和参数类型一致的函数(4个)。Lambda中Function函数接口(三)——Operator系列接口
  3. BinaryOperator:(二元操作)表示结果和参数类型一致的函数(4个)。Lambda中Function函数接口(三)——Operator系列接口
  4. Predicate:(断言)该接口代表传入一个参数并返回boolean的函数(5个)。Lambda中Function函数接口(四)——Predicate系列接口
  5. Supplier:(供应者)表示没有输入参数,但返回一个值(5个)。Lambda中Function函数接口(五)——Supplier系列接口
  6. Consumer:(消费者)表示传入一个参数,但不返回任何值(8个)。Lambda中Function函数接口(六)——Consumer系列接口
JDK8中所有函数式接口

Function

UnaryOperator

BinaryOperator

Predicate

Supplier

Consumer

BiFunction

IntUnaryOperator

IntBinaryOperator

BiPredicate

IntSupplier

BiConsumer

IntFunction

LongUnaryOperator

LongBinaryOperator

IntPredicate

LongSupplier

IntConsumer

LongFunction

DoubleUnaryOperator

DoubleBinaryOperator

LongPredicate

DoubleSupplier

LongConsumer

DoubleFunction

 

 

DoublePredicate

BooleanSupplier

DoubleConsumer

IntToLongFunction

 

 

 

 

ObjIntConsumer

IntToDoubleFunction

 

 

 

 

ObjLongConsumer

LongToIntFunction

 

 

 

 

ObjDoubleConsumer

LongToDoubleFunction

 

 

 

 

 

DoubleToIntFunction

 

 

 

 

 

DoubleToLongFunction

 

 

 

 

 

ToIntFunction

 

 

 

 

 

ToIntBiFunction

 

 

 

 

 

ToLongFunction

 

 

 

 

 

ToLongBiFunction

 

 

 

 

 

ToDoubleFunction

 

 

 

 

 

ToDoubleBiFunction

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值