WebFlux 响应式编程 2 - Stream

Stream

  • 高级迭代器 Pipeline
  • 内部迭代 外部迭代
    外部迭代 for 串行
    内部迭代 stream ,sum() 隐式 可用并行流 惰性 短路操作
  • 惰性求值 中间操作(返回流) 终止操作
    惰性求值 调用终止操作前 中间操作不会执行

Stream 的创建

在这里插入图片描述

Stream 中间操作

在这里插入图片描述
intStream longStream 非Stream子类 需要boxed装箱 flatMap(s -> s.chars.boxed()) 拆箱.intValue

Stream 终止操作

在这里插入图片描述

Stream 并行流

parallel()
sequential()以最后为准
ForkJoinPool.commonPool 默认cpu数量 公用可能阻塞
java.util.concurrent.ForkJoinPool.common.parallelism
自定义 new ForkJoinPool(num);
pool.submit(()->{…});
pool.shutdown();

Stream 收集器

.collect(Collectors.toList())
.toCollection(TreeSet::new)
汇总.summarizingInt()
分块 .partitioningBy() 2块
分组.groupingBy()

Stream 运行机制

链式调用,一个元素只迭代一次
每一个中间操作返回一个新的流 流的sourceStage指向同一处head->nextStage-nextStage
无状态被 有状态操作截断
并行情况下 有状态不一定并行
parallel/sequetial也是中间操作 不创建流只修改head的并行标志

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值