/**使用普通集合操作数据的弊端:标签:满足条件,Stream,元素,流中,数据,lambda From: https://www.cnblogs.com/Life-QX/p/16614768.html
* 每个需求都需要循环,这样需要一个新的集合来存储最终的数据,操作麻烦
*/
/** 操作Stream注意的3点:
* 1.Stream流只能操作一次
* 2.Stream方法返回的是新的流
* 3.Stream不调用终结方法,中间的操作不会执行。
* 目前终结方法有count、foreach,坦白的讲不返回Stream流即可,一定返回新的类型
*/
/** Stream流的操作方法:
* 1.forEach:遍历流最终的数据;
* 使用lambda表达式
* lambda表达式可以转成方法引用 A :: a
*
* 2.count:统计流中元素的个数
*
* 3.filter:用于过滤流中的数据,返回符合过滤条件的数据
*
* 4.limit:对流中的数据进行截取,只是截取前N个流中的数据
*
* 5.skip:跳过前几个元素,获取后面流中的数据
*
* 6.map:将一种类型的流中元素 映射(转换)到另一个类型流;就是对流的类型的转换
*
* 7.sorted:对数据进行排序;根据元素的自然顺序排序
*
* 8.distinct:去掉流中重复的数据
*
* 9.Match:判断流中的数据 是否与指定的条件 匹配
* allMatch:匹配所有元素,所有都都需要满足条件
* anyMatch:匹配某个元素,只要其中一个元素满足条件即可
* noneMatch:匹配所有元素,所有元素都不满足条件
*
* 10.find:找某些元素
* findFist:寻找流中的第一个元素
* findAny:寻找流中的第一个元素
*
* 11.max 和 min
* max: 获取流中的最大值,需要指定排序规则
* min: 获取流中的最小值
*
* 12.reduce:将流中的数据 进行归纳,最终得到一个数据;例如:求和
* identity,lambda表达式
*
* 13.map 和 reduce 组合使用:
*
*
*/