stream流参数总结

stream流的使用,是基于lambda表达式之上的,所以先从函数式接口和lambda表达式开始

1.函数式接口

函数式接口的特征也很明显,他是一个接口,且有且只有一个方法。并且还有一个注解@FunctionalInterface。
stream流参数总结_第1张图片

2.java8自带的函数式接口在strem中的体现

在stream流中,有很多api的参数为Predicate,Consumer,Function等,下面就总结一下这些参数的意思。

Predicate: 传入指定类型,并返回Boolean。
下面这段常见的代码意思是在bos中过滤出coopCount等于1000的数据在这里插入图片描述
我们点开其中的filter方法
stream流参数总结_第2张图片
可以看到它的参数是一个Predicate,由此可以知道,Predicate根据传入进去的行为条件来进行判断,流中的数据是否满足条件,如果结果为true,那么Stream流的 filter 方法将会留用元素;如果结果为false,那么 filter 方法将会舍弃元素。

Consumer: 传入任意类型,无返回值的操作
在stream的使用中,我们常常使用forEach来操作遍历流
在这里插入图片描述
点开forEach
stream流参数总结_第3张图片

Function: 传入T类型返回R类型。
下面是把bos中的类型,映射成了CooperateYearDistribution类型。
在这里插入图片描述
点开map可以看见
stream流参数总结_第4张图片
map接收一个Function参数

你可能感兴趣的:(java)