浅谈lamdba表达式

lambad表达式

中间操作

filter:可以对流中的元素进行条件过滤,符合过滤条件的才能继续留在流中

map:可以对流中的元素进行计算或转换

distinct:可以去除流中的重复的元素

sorted:可以对流中的元素进行排序

limit:可以设置流的长度 超出的部分将会被抛弃掉

skip:跳出流中的前n个元素,返回剩下的元素

flatMap:map只能把一个对象转换成另一个对象来作为流中的元素。而flatmap可以把一个对象转换成多个对象作为流中的元素

终结操作

foreach:对流中的元素进行遍历操作,我们通过传入的参数去指定对遍历的元素进行什么具体的操作

count:可以用来统计当前流中的元素的个数

max min:可以取到流里的最大值和最小值

collect:把当前流转换成集合

查找与匹配

anyMatch:可以判断是否有任意符合匹配条件的元素,结果类型是boolean类型

allMatch:查看是否全部符合 结果类型是boolean类型

noneMatch:没有一个符合

findAny:获取流中的任意一个元素 该元素不一定是第一个元素

findFirst:获取流里的第一个元素

reduce:归并

对于流中的数据按照制定的计算方式计算出一个结果(缩减操作)

reduce的作用把stream中的元素给组合起来,我们可以传入一个初始值 它会按照我们指定的计算方式依次拿流中的元素和在初始值的基础上进行计算,计算结果再和后面的元素进行计算

 

optional 操作

 

 

过滤

我们可以使用filter方法对数据进行过滤 如果原本是有数据的 但不符合判断条件 也会变成一个无数据的Optional对象

判断

isPresent方法判断是否存在数据 如果为空返回false 不为空返回为true

更推荐 ifPresent方法

数据转换

map进行数据转换 转换得到的数据是Optional封装好的保证了我们使用的安全性

 

 

函数式接口

只有一个抽象方法的接口叫做函数式接口

都有下面的注解

@FunctionalInterface

and

or

 

negate:取反 !

 

 

方法引用

基本格式

类名或者对象名::方法名

引用类的静态方法

格式 类名::方法名

使用前提

如果我们在重写方法的时候,方法体中只有一行代码,并且这行代码调用了某个类的静态方法,并且我们要把重写的抽象方法中所有的参数都按照顺序传入了这个静态方法中,这个时候我们就可以引用类的静态方法。

几个例子

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值