介绍
java.util.Spliterator
public interface Spliterator<T>
- 可分割迭代器
Spliterator
用于将一个数据源分割为多个部分,每个部分可以在不同的线程中进行遍历。Spliterator
也为并行流提供了支持。
API
常量
这些常量都是特征值:
- ORDERED
- 遍历的元素以当前状态的某种特定顺序排列
- DISTINCT
- 元素不重复
- SORTED
- 元素在遍历时按照某种排序方式被返回
- 报告 SORTED 也必须报告 ORDERED
- SIZED
- 具有已知大小,即
estimateSize()
方法的返回值是精确的
- 具有已知大小,即
- NONNULL
- 元素不为
null
- 元素不为
- IMMUTABLE
- 元素是不可变的
- CONCURRENT
- 支持并发遍历
- SUBSIZED
- Spliterator 分割出的子 Spliterator 也具有已知大小,即estimateSize() 方法的返回值是精确的
public
- tryAdvance
boolean tryAdvance(Consumer<? super T> action);
- 执行给定的操作,如果当前元素存在且被消费了,则返回 true
- forEachRemaining
void forEachRemaining(Consumer<? super T> action)
- 对剩余元素执行给定的操作,直到遇到最后一个元素或执行操作时出现异常为止
- trySplit
Spliterator<T> trySplit();
- 尝试将元素分成两部分,遍历这一部分并返回一个新的 Spliterator 用于遍历剩余部分。如果不能进行进一步的划分,则返回 null。此方法用于将数据源分成多个部分,以便在不同线程中分别处理。
- estimateSize
long estimateSize();
- 估计还剩下多少元素需要遍历,可能不准确
- getExactSizeIfKnown
long getExactSizeIfKnown()
- 如果此 Spliterator 为 SIZED 则返回
estimateSize()
,否则返回-1
- characteristics
int characteristics();
- 返回特征值
- hasCharacteristics
boolean hasCharacteristics(int characteristics)
- 判断是否具有特征值
- getComparator
Comparator<? super T> getComparator()
- 如果 SORTED ,则返回 Comparator 。如果按自然顺序,则返回 null 。否则,如果源不是 SORTED ,则抛出 IllegalStateException
- Spliterator 20230602 java utilspliterator 20230602 java util 20230602 enumset java util enumeration 20230602 java util collectors stream java util concurrent java util 20230619 optional java util 20230529 function java util jcraft connectexception util java 20230411 iterator java util 20230314 java util map