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)); } }
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; } }
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