Jdk8特性

jdk8特性

函数式接口

接口中有且只有一个抽象方法

@FunctionalInterface注解 – 表示此接口为函数式接口,约束接口中只能有一个抽象方法

使用

一般可以作为方法的参数和返回值类型

当一个方法的参数是函数式接口时,调用此方法时可以传入接口的实现类,也可以用lambda表达式来实例化函数式接口。(实际上是对匿名内部类写法的简化,但lambda表达式创建的匿名内部类,编译后不会有class文件,原理上与匿名内部类不太相同,性能会有所提高)

lambda表达式-延迟执行

有些代码执行之后,结果不一定会被使用,从而造成性能浪费,而lambda表达式是延迟执行的,在需要被用到时才会执行,所以正好可以作为解决方案,提升性能

常用的函数式接口

supplier、consumer等

Stream流

可以方便的操作集合和数组

获得Stream流方法:1,集合直接.Stream() 2.数组使用Stream.of(数组)

Stream流常用方法

延迟方法:返回值依然是Stream接口类型,因此可以链式调用

终结方法:返回值不再是Stream接口类型。count、match、foreach方法

forEach:遍历,参数consumer接口

filter:过滤,参数predicate接口,有返回值,返回一个子stream流

map:映射,把一个流数据映射到另一个类型的流中

count:统计个数

limit:截取前几个

skip:跳过前几个

concat:合并流

stream流属于管道流,只能被消费一次,数据流转到下一个流后,之前的流就关闭了。

方法引用

可以使用方法引用优化lambda表达式,例如:s -> System.out.println(s) == System.out::println

:: 引用运算符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值