Spliterator
(splitable iterator可分割迭代器)接口是Java为了并行遍历数据源中的元素而设计的迭代器,这个可以类比最早Java提供的顺序遍历迭代器Iterator
,但一个是顺序遍历,一个是并行遍历
boolean tryAdvance(Consumer<? super T> action); |
Spliterator<T> trySplit(); |
long estimateSize(); |
int characteristics(); |
第一个方法tryAdvance
就是顺序处理每个元素,类似Iterator
,如果还有元素要处理,则返回true,否则返回false
第二个方法trySplit
,这就是为Spliterator
专门设计的方法,区分与普通的Iterator
,该方法会把当前元素划分一部分出去创建一个新的Spliterator
作为返回,两个Spliterator
变会并行执行,如果元素个数小到无法划分则返回null
第三个方法estimateSize
,该方法用于估算还剩下多少个元素需要遍历
第四个方法characteristics
,其实就是表示该Spliterator
有哪些特性,用于可以更好控制和优化Spliterator
的使用,具体属性你可以随便百度到,这里就不再赘言
注:HashMap的拆分大小是按照HashMap容器的大小拆分的。