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 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());
}
}
}
Output:
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 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());
}
}
}
Output:
CopyOnWriteArrayList: [gopal, gfg, jgec, sudo] The iterator values of CopyOnWriteArrayList are: jgec sudo
Program 2:
// 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)