ama*_*ish 4 java java-8 java-stream
报告,IMMUTABLE或CONCURRENT的分裂器保证永远不会抛出ConcurrentModificationException.当然,CONCURRENT在语义上排除了SIZED,但这对客户端代码没有任何影响.
实际上,这些特性并不用于Stream API中的任何内容,因此,使用它们不一致的地方永远不会被注意到.
这也解释了为什么每个中间操作都具有清除CONCURRENT,IMMUTABLE和NONNULL特性的效果:Stream实现不使用它们,并且表示流状态的内部类不维护它们.
如果流不使用来自源的CHARACTERISTICS,那么流如何并行工作?流是否完全忽略了流源特征?
从这个问题 收集者不知道即时通讯使用供应商提供的并发收集,因此特征不受收集器容器类型的影响
您要求的是可能的.这些答案中的正确措辞是,在忽略这些属性时,在某些将来它们可能被流实现注入/读取/使用.
同样在你的评论中,你说:
someTreeSet().stream()
.sorted()
.... some other operations
Run Code Online (Sandbox Code Playgroud)
会打电话sorted.在这种情况下,这根本不是真的,不会调用该操作.这是一个未被忽略的流标志,并被注入到流实现中TreeSet.
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |