java8 stream流

记一次糟心的使用:

前奏:

首先stream流分为三个阶段:

  1.创建

  2.中间操作 :返回的还是流

  3.终止操作:

最重要的一点,如果你的代码里没有敲最后的终止操作,中间操作的代码不会执行,不会有结果的产生。这个叫惰性求值。

关于stream流有两个问题:

1.并行流和串行流?

并行流采用ForkJoinPool实现的,线程数默认是cpu的数量

2.中间操作:

无状态操作和有状态操作:

2.flatMap 和map?

插入一个来自网络的图片


3.stream运行机制:

wuzhua

1.只要没有有状态操作,就采用链式调用机制,每一条数据都只迭代一次,有状态操作会阶段无状态,单独处理.

每一个中间操作返回一个新的流,流中有一个属性sourceStage指向同一个Head

head-->nextStage-nextStage------ null


2.并行操作:有状态的中间操作不一定并行操作。

3.parallel()/sequential() 中间操作,不过并没有创建新的流,只是修改Head的并行标志

使用:


数据结果:


使用2:

产生结果:


总结:

我在使用了还有问题,和lambda和方法的引用结合上,写的不顺手。原来是我lambda学的不到位,lambda学好了在用stream比较好。

char

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,544评论 19 139
  • Java流库(java.util.stream) 流提供了一种让我们可以在比集合更高的概念级别上指定计算的数据视图...
    thorhill阅读 4,982评论 0 4
  • Jav8中,在核心类库中引入了新的概念,流(Stream)。流使得程序媛们得以站在更高的抽象层次上对集合进行操作。...
    仁昌居士阅读 4,070评论 0 6
  • 凤头篇1、如果你想让满屋的高管闭嘴,有一个小窍门——你可以问他们:“你凭什么领导别人?”过去10年间,我们为欧美的...
    下天巴熊阅读 378评论 0 0
  • 身在静中不知闲, 白云悠悠常相看。 青山无语连排坐, 苍海渺渺天地间。 数岁月,记流年。 只给“简书”写浪漫。 心...
    曹焕甫阅读 246评论 2 3

友情链接更多精彩内容