Java Spliterator 是四个迭代器之一:Enumeration、Iterator(/community/tutorials/java-iterator)、ListIterator(/community/tutorials/java-listiterator)和 Spliterator。
java分裂器
与Iterator 和 ListIterator 一样,Spliterator 是一个 Java Iterator,它用于从一个实现的 List对象中重复元素。
Java Spliterator 是 Java Collection API 的接口 2. Spliterator 被引入 Java 8 版本中 3. 它支持并行编程功能 4. 我们可以使用它用于收集 API 和 Stream API 类 5. 它提供了关于收集 API 对象的特征或特征 6. 我们不能使用此 Iterator 用于 Map
Spliterator本身不提供并行编程行为,但它提供了一些方法来支持它,开发人员应该使用 Spliterator 界面方法,并使用 Fork/Join Framework 实现并行编程(一个很好的方法)。
Spliterator 的主要功能
- 分开源数据
- 处理源数据
Java Spliterator 类图表
The following diagram shows the Class Diagram of Java Spliterator interface. It has many fields and methods.
Java分化方法
在本节中,我们将一个接一个列出所有Java Spliterator方法,并提供一些有用的描述。
- 内置特性( ): 返回此分割符及其元素的一组特性( _) )2. 长估计Size( ): 返回向下( 保留) 向上或返回长将遇到的元素数的估计数。 MAQVALUE,如果无限,未知,或者过于昂贵,无法计算. ( 3 保存( 消费者动作) 默认无效 : 在当前线索中按顺序执行每个剩余元素的给定动作,直到所有元素处理完毕或动作抛出一个例外.
- 默认比较器获得算法 (: 如果此分离器的源是比较器的 SORTED, 返回该比较器 。 () ) 5. 默认长取ExecSize Ifknownn( ): 如果此分割符是 SIZED, 则返回估计Size() 的方便方法, 否则为 -1. () )6. 默认布尔有Characteristics( int 特性) : 如果此分隔符的特性( ) 包含所有给定的特性, 返回真 。 ( _)
- 布尔 tryAdvance( 消费者动作) : 如果存在剩余元素,则执行给定的操作,返回真;否则返回假 () ) 8. 分解器 tripSplit (): 如果此拆分符可以被分割,则返回包含元素的拆分符,在从此方法返回时,此拆分符将不覆盖 。 () (英语)
Java Spliterator 示例
在本节中,我们将讨论如何使用 spliterator() 创建 Java Spliterator 对象,并开发简单的示例。
1import java.util.Spliterator;
2import java.util.ArrayList;
3import java.util.List;
4
5public class SpliteratorSequentialIteration
6{
7 public static void main(String[] args)
8 {
9 List<String> names = new ArrayList<>();
10 names.add("Rams");
11 names.add("Posa");
12 names.add("Chinni");
13
14 // Getting Spliterator
15 Spliterator<String> namesSpliterator = names.spliterator();
16
17 // Traversing elements
18 namesSpliterator.forEachRemaining(System.out::println);
19 }
20}
Output:-
1Rams
2Posa
3Chinni
如果我们观察上面的程序和输出,我们可以很容易地理解这个 Spliterator.forEachRemaining() 方法的工作方式与 ArrayList.foreach()相同。
Spliterator 的优点
- 与 Iterator 和 ListIterator 不同,它支持并行编程功能.
- 与 Iterator 和 ListIterator 不同,它支持数据的连续和并行处理
- 与其他 Iterators 相比,它提供更好的性能
分裂者 vs 分裂者
.................................................................................................................................................................................
这是关于Java中的Spliterator的一切。 参考: API Doc