1.什么是stream流
1.stream是对集合或数组进行操作,可以对集合进行筛选,过滤,映射,分组等等操作。因为他的执行速度大于数据库的执行速度。所以在JVM中使用比较广泛。
2.中间操作,每次返回一个新的流,可以有多个。
3.终端操作,每个流只能进行一次终端操作,终端操作结束后流无法再次使用。终端操作会产生一个新的集合或值。
2.stream流的特性
stream不存储数据,而是按照特定的规则对数据进行计算,一般会输出结果。
stream不会改变数据源,通常情况下会产生一个新的集合或一个值。
stream具有延迟执行特性,只有调用终端操作时,中间操作才会执行。
stream例子
结束时候不想输出,可以使用collect(Collectors.toList())结尾,这样可以用list集合接收生成一个新的list集合
2.1fileter(过滤)
使用steam流,先把集合或数组转换成steam,在调用steam的api。
steam的filter方法这里的t不是固定写法,它可以自定义,在()中他的意思是指personList集合
fileter中必须使用比较条件
![](https://img-blog.csdnimg.cn/img_convert/2a1bd9e341e579d5185c15e528b8a092.png)
输出结果
![](https://img-blog.csdnimg.cn/img_convert/0913009d42d54707672274c3dd2fa3c9.png)
filter可以多个条件
![](https://img-blog.csdnimg.cn/img_convert/bd7afc25cd4cf88d7737934b58e03334.png)
2.2map(映射)
可以理解为,只需要哪些属性
![](https://img-blog.csdnimg.cn/img_convert/071402911e0ed47ea9cb5649a67da2f0.png)
输出结果
![](https://img-blog.csdnimg.cn/img_convert/7042272e4c51f00e781d82d43e488adb.png)
2.3sort(排序)
倒序
![](https://img-blog.csdnimg.cn/img_convert/8ea3549318fc4014a022802d0520552a.png)