Método ArrayList spliterator() en Java

El método spliterator() de ArrayList devuelve un Spliterator de los mismos elementos que ArrayList, pero el Spliterator creado es de enlace tardío y falla rápido. Un Spliterator de unión tardía se une a la fuente de los elementos. Significa que Arraylist en el punto del primer recorrido, la primera división o la primera consulta de tamaño estimado, en lugar de en el momento en que se crea el Spliterator. Se puede usar con Streams en Java 8. Además, puede atravesar elementos individualmente y también en masa. Spliterator es una mejor manera de atravesar el elemento porque proporciona más control sobre los elementos.

Spliterator = Splitting + Iterator
  • Utiliza el método tryAdvance() para iterar elementos individualmente en múltiples subprocesos para admitir el procesamiento paralelo,
  • método forEachRemaining() para iterar elementos secuencialmente en un solo subproceso,
  • método trySplit() para dividirse en subdivisores para admitir el procesamiento en paralelo.

Spliterator admite el procesamiento de datos secuencial y paralelo.

Si observa la salida del programa a continuación, encontrará que el método Spliterator.forEachRemaining() funciona de la misma manera que ArrayList.foreach() pero proporciona un mejor rendimiento.

Sintaxis:

public Spliterator<E> spliterator()

Devoluciones: este método devuelve un Spliterator sobre los elementos en ArrayList.

Los siguientes programas ilustran el método spliterator() de ArrayList:

Ejemplo 1: Para demostrar el método spliterator() en ArrayList que contiene una lista de correos electrónicos.

// Java Program Demonstrate spliterator()
// method of ArrayList
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ArrayList which contains
        // emails for a group of people
        ArrayList<String> list = new ArrayList<String>();
  
        // Add emails to list
        list.add("abc@geeksforgeeks.org");
        list.add("user@geeksforgeeks.org");
        list.add("pqr@geeksforgeeks.org");
        list.add("random@geeksforgeeks.org");
        list.add("randomuser@geeksforgeeks.org");
  
        // create Spliterator of ArrayList
        // using spliterator() method
        Spliterator<String> emails = list.spliterator();
  
        // print result from Spliterator
        System.out.println("list of Emails:");
  
        // forEachRemaining method of Spliterator
        emails.forEachRemaining((n) -> System.out.println(n));
    }
}
Producción:

list of Emails:
abc@geeksforgeeks.org
user@geeksforgeeks.org
pqr@geeksforgeeks.org
random@geeksforgeeks.org
randomuser@geeksforgeeks.org

Ejemplo 2: para demostrar el método spliterator() en ArrayList que contiene una lista de usuarios.

// Java Program Demonstrate spliterator()
// method of ArrayList
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ArrayList which contains
        // user details from user class
        ArrayList<user> list = new ArrayList<user>();
  
        // Add emails to list
        list.add(new user("Aman", 24));
        list.add(new user("Suraj", 23));
        list.add(new user("Amar", 24));
        list.add(new user("Kajal", 22));
  
        // create Spliterator of ArrayList
        // using spliterator() method
        Spliterator<user> users = list.spliterator();
  
        // print result from Spliterator
        System.out.println("list of Emails:");
  
        // forEachRemaining method of Spliterator
        users.forEachRemaining((n) -> print(n));
    }
  
    public static void print(user u)
    {
        System.out.println("User name : " + u.name
                           + " and user age: " + u.age);
    }
}
  
// create a user class
class user {
  
    String name;
    int age;
  
    user(String name, int age)
    {
        this.name = name;
        this.age = age;
    }
}
Producción:

list of Emails:
User name : Aman and user age: 24
User name : Suraj and user age: 23
User name : Amar and user age: 24
User name : Kajal and user age: 22

Referencia:
https://docs.oracle.com/javase/10/docs/api/java/util/ArrayList.html#spliterator()

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *