流和集合的区别
1. 流只能消费一次
2. 循环方式不同,流:内部迭代,集合:外部迭代
哲学中的流和集合
流--->时间
集合--->空间
流的使用
- [1] 一个数据源(如集合)来执行一个查询
- [2] 一个中间操作链,形成一条流的流水线
- [3] 一个终端操作,执行流水线,并能生成结果
流的中间操作和终端操作
| 操作 | 描述 | 类型 | 返回类型 | 使用类型/函数式接口 | 函数描述符 |
|---|---|---|---|---|---|
| filter | 筛选 | 中间 | Stream | Predicate | T->boolean |
| distinct | 独一无二 | 中间(有状态-无界) | Stream | ||
| skip | 跳过 | 中间(有状态-有界) | Stream | long | |
| limit | 限制几个 | 中间(有状态-有界) | Stream | long | |
| map | 获取…重新返回单独的流 | 中间 | Stream | Function | T->R |
| flatMap | 生成扁平化为单个流 | 中间 | Stream | Function> | T->Stream |
| sorted | 排序 | 中间(有状态-无界) | Stream | Comparator | (T,T)->int |
| anyMatch | 终端 | boolean | Predicate | T->boolean | |
| noneMatch | 终端 | boolean | Predicate | T->boolean | |
| allMatch | 终端 | boolean | Predicate | T->boolean | |
| findAny | 终端 | Optional | |||
| findFirst | 终端 | Optional | |||
| forEach | 终端 | void | Consumer | T->void | |
| collect | 终端 | R | Collector | ||
| reduce | 终端(有状态-有界) | Optional | BinaryOperator | (T,T)->T | |
| count | 终端 | long |
本文探讨了流和集合的基本概念与区别,重点介绍了流的特性,包括只能被消费一次、内部迭代机制等。此外,还详细阐述了流的操作流程,即从数据源开始,经过一系列中间操作,最终通过终端操作产生结果。文中列举了多种流的中间操作与终端操作,并解释了它们的功能和使用场景。
3172

被折叠的 条评论
为什么被折叠?



