Java第十四章

一,lambda表达式

  lambda表达式可以用非常少的代码实现抽象方法。lambda表达式不能独立执行,因此必须实现函数式接口,并且会返回一个函数式接口的对象。lambda表达式的语法非常特殊。格式如下:

() -> 结果表达式
参数 -> 结果表达式
(参数 1,参数 2,.....参数n)->结果表达式

lambda表达式语法用如下方式理解:

()            ->            {代码块}
这个方法       按照       这样的代码来实现 

二,lambda表达式实现函数式接口

1. 

2. 

 3.

三,方法的引用 

引用成员方法的语法如下:

对象名::成员方法名

 与引用静态方法语法不同,这里操作符左侧的必须是一个对象名,而不是类名。

4.

创建函数式接口和测试类,在接口中定义抽象方法method(),在测试类中编写一个可以用来实现抽象方法的成员方法——format()方法

引用构造方法 

 引用构造方法的语法如下:

类名::new

因为构造方法与类名相同,如果操作符左右都写类名,会让操作符误以为是在引用与类名相同的静态方法,这样会导致程序出现BUG,所有引用构造方法的语法使用了new关键字。操作符右侧的写new关键字,表示引用构造方法。 

5.

 四,流处理

流处理有点类似数据库的SQL语句,可以执行非常复杂的过滤、映射、查找和收集功能,并且代码量很少。唯一缺点是代码可读性不高,如果开发者基础不好,可能会看不懂API所表达的含义。

6.

7.

 其中stream = stream.limit(3);为限制输出的条数

数据映射
数据的映射和过滤概念不同:过滤式在流中找到符合条件的元素,映射是在流中获得具体的数据。

数据查找
数据查找并不是在流中获取数据(这属于数据过滤),而是判断流中是否符合条件的数据,查找的结果是一个boolean值或一个Optional类的对象。

数据收集
数据收集可以理解为高级的“数据过滤+数据映射”,是对数据的深加工。本节将讲解两种实用场景:数据统计和数据分组。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值