一、Stream流介绍

Stream是一个流,其在java.util.Stream包的路径下,主要用于对集合数据进行查找过滤等操作,流是一种高效切易用的数据处理方式。

二、Stream流和Collection的区别

Collection只负责存储数据,不对数据做其它处理,其主要跟内存打交道。
Stream只负责计算数据,主要和CPU打交道。

三、Stream中间操作汇总

使用Stream流的步骤。

  1. 创建一个Stream,可以从集合、数组中获取流
  2. 使用Stream操作数据,对Stream流中的元素进行操作,是一个中间的操作链
  3. 终止Stream,终止操作,执行中间操作链,并产生结果

以下方法均为 stream(). 后进行的操作。
所有的中间操作均为懒执行,直到实际需要处理结果时才会执行。

方法 作用
filter() 传入lambda表达式,用于从流中排除某些元素
limit(long maxSize) 截断流,返回不超过maxSize数量的流
skip(long n) 返回跳过前n个元素的流,如果流中的元素不足n个,就返回一个空流
distinct() 去重操作,通过流所生成元素的hashCode()和equals()方法去除重复元素
map() 接收lambda表达式,将元素转换成其它形式或提取元素的信息,可以接收函数作为参数,函数会被用到每一个元素上,将其映射成一个新的元素
sorted() 自然排序,也可以传入Comparator自定义排序
allMatch() 检查是否匹配所有元素
noneMatch() 检查是否没有匹配所有元素
anyMatch() 检查是否至少匹配一个元素
findFirst() 返回第一个元素
findAny() 返回当前流的任意一个元素
count() 返回流元素的总个数
max(Comparator) 返回流中的最大值,需要传入Comparator进行比较
min(Comparator) 返回流中的最小值,需要传入Comparator进行比较
reduce() 规约操作可以将流中的元素反复结合起来,得到一个值
collect() 将流转换为其它形式,接收一个Collector接口是心啊,用于给Stream中汇总的方法

四、Stram的优势

stream就像一个工具,可以帮我们分析处理数据,使用非常的方便。