El método listIterator() de CopyOnWriteArrayList devuelve un listIterator sobre los elementos de esta lista en la secuencia adecuada. listIterator NO es compatible con los métodos remove, set o add.
Sintaxis:
public ListIterator listIterator()
Parámetros: La función no acepta ningún parámetro.
Valor devuelto: la función devuelve un iterador de lista sobre los elementos de esta lista (en la secuencia adecuada)
Los siguientes programas ilustran la función anterior:
Programa 1:
Java
// Java Program to illustrate the CopyOnWriteArrayList // listIterator() method in Java import java.util.concurrent.CopyOnWriteArrayList; import java.util.*; public class GFG { public static void main(String[] args) { // create object of CopyOnWriteArrayList CopyOnWriteArrayList<Integer> ArrLis = new CopyOnWriteArrayList<Integer>(); // Add elements ArrLis.add(32); ArrLis.add(67); ArrLis.add(67); ArrLis.add(100); // print CopyOnWriteArrayList System.out.println("CopyOnWriteArrayList: " + ArrLis); // Call listIterator() method of Iterator iteratorVals = ArrLis.listIterator(); // Print elements of iterator // created from CopyOnWriteArrayList System.out.println("The iterator values" + " of CopyOnWriteArrayList are:"); // prints the elements using an iterator while (iteratorVals.hasNext()) { System.out.println(iteratorVals.next()); } } }
CopyOnWriteArrayList: [32, 67, 67, 100] The iterator values of CopyOnWriteArrayList are: 32 67 67 100
El método listIterator(index) de CopyOnWriteArrayList devuelve un listIterator sobre los elementos de esta lista en la secuencia adecuada a partir de un índice particular. listIterator NO es compatible con los métodos remove, set o add.
Sintaxis:
public ListIterator listIterator(int index)
Parámetros: la función acepta un índice de parámetro que especifica el índice del primer elemento que devolverá el iterador de lista.
Valor devuelto: la función devuelve un iterador de lista sobre los elementos de esta lista a partir del índice especificado (en la secuencia adecuada).
Excepciones: la función lanza IndexOutOfBoundsException si el índice está fuera de rango.
Los siguientes programas ilustran la función anterior:
Programa 1:
Java
// Java Program to illustrate the CopyOnWriteArrayList // listIterator() method in Java import java.util.concurrent.CopyOnWriteArrayList; import java.util.*; public class GFG { public static void main(String[] args) { // create object of CopyOnWriteArrayList CopyOnWriteArrayList<String> ArrLis = new CopyOnWriteArrayList<String>(); // Add elements ArrLis.add("gopal"); ArrLis.add("gfg"); ArrLis.add("jgec"); ArrLis.add("sudo"); // print CopyOnWriteArrayList System.out.println("CopyOnWriteArrayList: " + ArrLis); // Call listIterator() method from 2nd index Iterator iteratorVals = ArrLis.listIterator(2); // Print elements of iterator // created from CopyOnWriteArrayList System.out.println("The iterator values" + " of CopyOnWriteArrayList are:"); // prints the elements using an iterator while (iteratorVals.hasNext()) { System.out.println(iteratorVals.next()); } } }
CopyOnWriteArrayList: [gopal, gfg, jgec, sudo] The iterator values of CopyOnWriteArrayList are: jgec sudo
Programa 2 :
Java
// Java Program to illustrate the CopyOnWriteArrayList // listIterator() method in Java, exception import java.util.concurrent.CopyOnWriteArrayList; import java.util.*; public class GFG { public static void main(String[] args) { // create object of CopyOnWriteArrayList CopyOnWriteArrayList<String> ArrLis = new CopyOnWriteArrayList<String>(); // Add elements ArrLis.add("gopal"); ArrLis.add("gfg"); ArrLis.add("jgec"); ArrLis.add("sudo"); // print CopyOnWriteArrayList System.out.println("CopyOnWriteArrayList: " + ArrLis); // Call listIterator() method from 6th index // hence exception is returned Iterator iteratorVals = ArrLis.listIterator(6); // Print elements of iterator // created from CopyOnWriteArrayList System.out.println("The iterator values" + " of CopyOnWriteArrayList are:"); // prints the elements using an iterator while (iteratorVals.hasNext()) { System.out.println(iteratorVals.next()); } } }
Producción:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 6 at java.util.concurrent.CopyOnWriteArrayList.listIterator(CopyOnWriteArrayList.java:1107) at GFG.main(GFG.java:25)
Referencia: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CopyOnWriteArrayList.html#listIterator–