Java Stream

Stream

Stream是一组用来处理数组、集合的API。

引入函数式编程的原因:

  • 代码简洁,意图明确。使用Stream接口可以告别for循环。
  • 多核友好。函数式编程使得编写并行程序简单,需要的全部只是调用一下parallel()方法。

特性

  1. 不是数据结构,没有内部储存。
  2. 不支持索引访问。
  3. 延迟计算。
  4. 支持并行
  5. 很容易生成数组或者集合
  6. 支持过滤、查找、转换、汇总、聚合等操作。

运行机制

Stream分为 源source、中间操作、终止操作。
流的源可以是一个数组、一个集合、一个生成器方法、一个IO通道等等。

一个流可以有零个或者多个中间操作,每一个中间操作都会但会一个新的流,供下一个操作使用,一个流只有一个终止操作。

Stream只有遇到终止操作,它的源才开始执行遍历操作。

Stream的创建

  1. 通过数组
  2. 通过集合
  3. 通过生成器——Stream.generate方法来创建。
  4. 通过IO通道——Stream.iterate方法来创建。
  5. 其他API创建。

Stream常用的API

中间操作

过滤 filter
去重 distinct
排序 sorted
截取 limit、skip
转换 map、flatMap
其他 peek

终止操作

循环 forEach
计算 min、max、count、average
匹配 anyMatch、allMatch、noneMatch、findFirst、findAny
汇聚 reduce
收集器 toArray collect

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值