Stream API

时间:2022-07-23
本文章向大家介绍Stream API,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、用于处理内存中的数据

像SQL语句来操作数据库一样的形式。

2、Stream流的特点

(1)Stream流不可变,每次改变就会创建一个新的流

(2)Stream流也不会改变数据源的数据

(3)Stream的中间操作是一个延迟操作,一直到终结操作时,一起完成。

3、Stream API的使用分为三个步骤

(1)创建Stream

(2)0-n步中间操作

(3)终结操作

4、四种方式创建Stream

(1)通过Arrays.stream(数组)

(2)通过集合对象.stream()

(3)Stream.of(…)

(4)创建无限流

Stream.generate(Supplier)

Stream.iterate(T seed,UnaryOperator)

5、中间操作:这些方法的返回值类型还是Stream,所以可以继续再操作

(1)filter(Predicate p):按照p的条件过滤

(2)distinct():去重复

(3)limit(long maxSize)取流中的前maxSize个

(4)skip(long n):跳过前n个

(5)peek(Consumer action):对流中的元素,挨个执行consumer接口的action操作

(6)map(Function f):对流中的每一个元素,都映射f指定的操作

(7)flatMap (Function f)

(8)sorted()

sorted(Comparator com)

6、终结操作:这些方法的返回值类型不是Stream,所以不能继续再操作,所以对Stream的操作就结束

一个流一旦终结就结束了,就不能用了,要再使用,需要重写创建新的Stream

(1)forEach(Consumer c)

(2)long count()

(3)Optionalmax(Comparatorc)

(4)0ptionalmin(Comparator c)

(5)boolean allMatch(Predicate p):所有都匹配

   boolean anyMatch(Predicate p):有任一个匹配

   boolean noneMatch(Predicate p):都不匹配

(6)R collect(Collector c)

Collectors 工具类提供了很多静态方法,可以方便地创建常见收集器实例。