#博学谷IT学习技术支持#
Stream流的诞生使操作集合类数据更加便利,Stream知识点包含流的获取,中间方法,终结方法以及数据收集。
集合类库存在一些弊端,假设有一个需求需要获取集合中符合条件的数据,没有Stream流之前,需要通过遍历的方式才能获取到对应的数据,Stream流的诞生很好的解决了集合类库的弊端,通过Stream流中的方法即可获取到符合条件的数据。
流的获取可以从单列集合、双列集合、数组和同种类型的多个数据中获取:
单列集合
使用Collection接口中的默认方法stream()生成流
default Stream stream()

双列集合
间接生成流,可以先通过keySet或者entrySet获取一个Set集合,再获取Stream流

数组
Arrays中的静态方法stream生成流

同种数据类型的多个数据
使用Stream.of(T… values)生成流

Stream有6个中间方法:
(1)filter:用于对六种的数据进行过滤,表示式中若为true,则保留数据,反之不保留
(2)limit:截取指定参数个数的数据
(3)skip:跳过指定参数个数的数据
(4)concat:合并a和b两个流为一个流
(5)distinct:去除流中重复的数据
终结方法经常使用的有两个:
(1)forEach:对此流的每个元素执行操作
(2)count:返回流中元素的个数
Stream的数据收集操作
(1)在stream流中,无法直接修改集合、数组等数据源中的数据,只能对Stream流进行操作
(2)Stream无法直接修改数据源的数据,但是可以通过Collection的静态方法toList/toSet/toMap方法生成新的集合。
toList和toSet

toMap,由于创建Map为双列集合,所以相对于List和Set来说,需要额外获取添加Map集合所需的Key和Value

Stream流的诞生很好的解决了集合类的弊端,大大提高了效率,同时也让代码变得更加简介易懂。