Skip to content
Related Articles

Related Articles

CopyOnWriteArrayList listIterator() method in Java
  • Last Updated : 25 Nov, 2020

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




// 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




// 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)

Reference: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CopyOnWriteArrayList.html#listIterator–
 

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :