Java Arrays.spliterator()方法

原文:https://www.studytonight.com/java-util/java-arrays-spliterator-method

在本教程中,我们将学习 JavaArrays类的spliterator()方法。这是 Java 中的拆分和迭代器的扩展,具有更多的特性。让我们看看它的语法和例子来理解这个概念。

句法

static Spliterator.OfInt spliterator(int[] array)

spliterator()方法重载方法列表

此表包含spliterator()方法的所有重载变体。

方法 描述
静态分离器。双分隔符(双[]数组) 此方法返回一个拆分器。覆盖所有指定数组的双精度数组。
静态分离器。OfDouble 拆分器(double[]数组,int startInclusive,int endExclusive) 此方法返回一个拆分器。覆盖指定数组的指定范围的双精度值。
静态分离器。OfInt 拆分器(int[]数组) 此方法返回一个拆分器。覆盖所有指定数组的对象。
静态分离器。OfInt 拆分器(int[]数组,int startInclusive,int endExclusive) 此方法返回一个拆分器。覆盖指定数组的指定范围的对象。
静态分离器。长分隔符(长[]数组) 此方法返回一个拆分器。覆盖所有指定数组的长。
静态分离器。长分隔符(长[]数组,int startInclusive,int endExclusive) 此方法返回一个拆分器。OfLong,覆盖指定数组的指定范围。
静态分割器分割器(T[]数组)</t> 此方法返回一个包含所有指定数组的拆分器。
静态分割器分割器(T[]数组,int startInclusive,int endExclusive)</t> 此方法返回一个 Spliterator,它覆盖指定数组的指定范围。

enlightened拆分器=拆分+迭代器

分流器的优点

  • 支持并行编程功能。 它支持数据的并行 处理。* 它提供了更好的性能。*

    *## 类的列表对象上的spliterator()方法示例

在下面给出的例子中,我们有一个ArrayList 班的学生。通过使用分割器方法,我们正在分割它,然后我们可以使用forEachRemaining 方法轻松打印它。

import java.util.ArrayList;
import java.util.Spliterator;
class Student { 
    int rollno; 
    String name;
    public Student(int rollno, String name) 
    { 
        this.rollno = rollno; 
        this.name = name; 
    }  
} 
class StudyTonight{ 
    public static void main(String args[]) 
    {  
        ArrayList<Student> list = new ArrayList<Student>(); 
        list.add(new Student(1, "AAA"));
        list.add(new Student(2, "BBB"));
        list.add(new Student(3, "CCC"));
        list.add(new Student(4, "DDD"));
        list.add(new Student(5, "EEE"));        
        Spliterator<Student> students = list.spliterator(); 
        System.out.println("list of Students:"); 
        students.forEachRemaining((n) -> System.out.println(n.rollno+" "+n.name)); 
    }
}

学生名单: 1 AAA 2 BBB 3 CCC 4 DDD 5 EEE

示例:拆分器的重载方法()

在下面的例子中,我们在所有支持的数据类型上实现了spliterator()

import java.util.Arrays;
import java.util.Spliterator;
public class StudyTonight 
{
    public static void main(String[] args) 
    {
        int[] array1 = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
        Spliterator<Integer> s1 = Arrays.spliterator(array1);
        s1.forEachRemaining((n) -> System.out.print(n+" "));     

        System.out.print("\n");   

        double[] array2 = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
        Spliterator<Double> s2 = Arrays.spliterator(array2);
        s2.forEachRemaining((n) -> System.out.print(n+" "));  

        System.out.print("\n");   

        long[] array3 = {121, 41, 32, 14, 33, 71, 99, 32};
        Spliterator<Long> s3 = Arrays.spliterator(array3);
        s3.forEachRemaining((n) -> System.out.print(n+" "));                 
    }
}

2 4 6 8 10 12 14 16 18 20 2.0 4.0 6.0 8.0 10.0 12.0 14.0 16.0 18.0 20.0 121 41 32 14 33 71 99 32

结论:

在本教程中,我们学习了 Java 中Arrays类的 spliterator()方法。这个方法是 分裂迭代器 的组合。根据官方文档,用于遍历和划分源元素的对象。拆分器覆盖的元素源可以是,例如,数组、Collection、输入输出通道或生成器函数。