什么是流呢?
想了好久也不知道怎么表述,感觉很抽象,就是一个很好用的工具🐖。
认真点说辞👇
对 Java集合 的增强,提供了 过滤,计算,转换 等聚合操作,使用起来方便快捷。
详解👇
流 和 集合 的不同点
为了弄明白这个 stream 是啥,我还特意去翻看了 Java SE 的文档🐖,今年第一次打开 哈哈哈
👉 docs.oracle.com/javase/8/do…
- 流不是数据结构,不存储数据
- 流不改变数据源的数据,比如 filter 一个集合时,最后是返回一个新集合,而不是删除原集合中的对象
- 流的 API 分为 中间操作 和 终端操作,中间操作是惰性的,遇到终端操作才真正执行
- 流是无限的,集合是有限的,可以通过 limit ,findFirst 等 短路 API 来让它快点执行完
- 是一次性的,使用后就关闭了,需要重新创建,和 Iterator 一样。
流的创建
看文档里有很多种创建方式,stream(),Stream.of(),Arrays.stream() 等,不过我平时使用最多的还是 stream() 这种。