Sta*_*lfi 6 java java-8 java-stream spliterator
https://docs.oracle.com/javase/8/docs/api/java/util/Spliterator.html
SIZED特征值表示在遍历或拆分之前从estimateSize()返回的值表示有限大小,在没有结构源修改的情况下,表示完整遍历将遇到的元素数量的精确计数.
SUBSIZED特征值表示由trySplit()生成的所有Spliterator都将是SIZED和SUBSIZED.
Hol*_*ger 11
的一个典型的例子Spliterator是SIZED,但不SUBSIZED,是Spliterator创建由HashMap.它将保持其内部条目数组的范围,其中一些数组条目是null,因为容量高于实际大小.null要跳过的条目的确切分布取决于包含的键的哈希码.
所以Spliterator最初确实知道它的(总)大小,但是当分割范围时,它不知道每个范围中有多少元素.拥有的元素越多HashMap,大致平衡分裂的可能性就越高,因此这种策略是合理的,但确切的子集是未知的,并且需要在数组上进行迭代才能找到.
报告一个SUBSIZED特征没有SIZED任何意义,据我所知,甚至没有效果.
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |