Stream流

116 阅读1分钟

Stream 是什么

Stream是Java 8新增的重要特性, 它提供函数式编程支持并允许以管道方式操作集合. 流操作会遍历数据源, 使用管道式操作处理数据后生成结果集合, 这个过程通常不会对数据源造成影响。

​ 同时stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。在Stream中的操作每一次都会产生新的流,内部不会像普通集合操作一样立刻获取值,而是惰性取值,只有等到用户真正需要结果的时候才会执行。

Stream流的使用步骤

1.先到一条stream流,并把数据放上去

IMG_2448.PNG 双列集合使用stream流需要获取键值对对象

2.使用中间方法对流水线上的数据进行操作

filter(element_>boolean表达式)

 //过滤,只要空字符串  
 NewList<String> list = stringList.stream()  

  .filter(param -> param.isEmpty())
.collect(Collectors.toList()); 过滤元素,符合Boolean表达式的留下来

distinct()方法

作用:去除重复元素
list.stream().distinct().forEach(s->system.out.println(s));

limit(long n)

返回前n个元素
list=list.stream().limit(1).collect(Collectors.toList));

skip(long n)

去除前n个元素

limit(m).skip(n),返回前n个元素,再从这m个元素中除去n个

list=list.stream().limit(2).skip(1).collect(Collectors.toList());

map(T->R)

联想截图_20231209154336.png 转换流中的数据类型

3.使用终结方法对流水线上的数据进行操作

IMG_2449.PNG