Java 拆分器

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

Java Spliterator 类图表

The following diagram shows the Class Diagram of Java Spliterator interface. It has many fields and methods. Java Spliterator Class Diagram

Java分化方法

在本节中,我们将一个接一个列出所有Java Spliterator方法,并提供一些有用的描述。

  1. 内置特性( ): 返回此分割符及其元素的一组特性( _) )2. 长估计Size( ): 返回向下( 保留) 向上或返回长将遇到的元素数的估计数。 MAQVALUE,如果无限,未知,或者过于昂贵,无法计算. ( 3 保存( 消费者动作) 默认无效 : 在当前线索中按顺序执行每个剩余元素的给定动作,直到所有元素处理完毕或动作抛出一个例外.
  2. 默认比较器获得算法 (: 如果此分离器的源是比较器的 SORTED, 返回该比较器 。 () ) 5. 默认长取ExecSize Ifknownn( ): 如果此分割符是 SIZED, 则返回估计Size() 的方便方法, 否则为 -1. () )6. 默认布尔有Characteristics( int 特性) : 如果此分隔符的特性( ) 包含所有给定的特性, 返回真 。 ( _)
  3. 布尔 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 的优点

  1. 与 Iterator 和 ListIterator 不同,它支持并行编程功能.
  2. 与 Iterator 和 ListIterator 不同,它支持数据的连续和并行处理
  3. 与其他 Iterators 相比,它提供更好的性能

分裂者 vs 分裂者

.................................................................................................................................................................................

这是关于Java中的Spliterator的一切。 参考: API Doc

Published At
Categories with 技术
Tagged with
comments powered by Disqus