The listIterator() method of CopyOnWriteArrayList returns an listIterator over the elements in this list in proper sequence. The listIterator does NOT support the remove, set or add methods.
Syntax:
public ListIterator listIterator()
Parameters: The function does not accept any parameters.
Return Value: The function returns a list iterator over the elements in this list (in proper sequence)
Below programs illustrate the above function:
Program 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
The listIterator(index) method of CopyOnWriteArrayList returns an listIterator over the elements in this list in proper sequence starting from a particular index. The listIterator does NOT support the remove, set or add methods.
Syntax:
public ListIterator listIterator(int index)
Parameters: The function accepts a parameter index which specifies the index of the first element to be returned from the list iterator.
Return Value: The function returns a list iterator over the elements in this list starting from the specified index (in proper sequence).
Exceptions: The function throws IndexOutOfBoundsException if the index is out of range.
Below programs illustrate the above function:
Program 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
Program 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()); } } } |
Output:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 6 at java.util.concurrent.CopyOnWriteArrayList.listIterator(CopyOnWriteArrayList.java:1107) at GFG.main(GFG.java:25)