Java Program to Remove an Element from ArrayList using ListIterator

ListIterator.remove() method removes the last element from the list that was returned by next() or previous() cursor positions. It can be called only once per call to next or previous. It can be made only if the operation — add(E) has not called after the last call to next or previous.
Internal working in ArrayList is shown below be its removal or addition of elements to it. Considering generic removal of elements prior to the switch to ListIterator.
Syntax:
listIterator.remove();
- Index to be removed
 - Index value to be removed
 
Illustration:
Input: ArrayList = [“Red”, “White”, “Blue”, “Pink”]
Output: ArrayList = [“Red”, “Blue”, “Pink”]
Remove element “White” or 2nd element in the ArrayList.
Input: ArrayList = [“Red”, “White”, “Blue”, “Pink”]
Output : ArrayList = [“Red”, “White”, “Blue”, “Pink”]
Remove element “Black” or 5th element in the ArrayList. Since the element that has to be removed is not in the ArrayList so nothing will be removed.
Procedure: To Remove an element from ArrayList using ListIterator is as follows:
- Create ArrayList instance new ArrayList<String>();
 - Add elements in ArrayList colors using colors.add(“Red”);
 - Create ListIterator instance of colors.listIterator();
 - Print list elements before removing elements.
 - Increment the iterator by listIterator.next() and move to element which you want to remove;
 - Remove the element by listIterator.remove();
 - Print the list after removing the element. In this example, we have removed the element “White.
 
State transactions while deleting an element from ArrayList
Case 1: Using loops if the index of the element to be removed is known
Java
// Java Program to Remove an element from ArrayList// using ListIterator// Importing ArrayList and ListIterator classes// of java.util packageimport java.util.ArrayList;import java.util.ListIterator;public class GFG {    // Main driver method    public static void main(String[] args)    {        // Create an  ArrayList        ArrayList<String> colors = new ArrayList<String>();        // Add elements to above ArrayList        colors.add("Red");        colors.add("White");        colors.add("Blue");        colors.add("Pink");        colors.add("Black");        colors.add("Green");        // ArrayList ={Red, White, Blue, Pink, Black, Green}        ListIterator<String> listIterator            = colors.listIterator();        System.out.println("List Before remove() method = "                           + colors);        // Removing ith element from ArrayList        // using listiterator        // Suppose i = 3, so traversing        // till that element        for (int i = 0; i < 3; i++) {            listIterator.next();        }        // Removes one more element from list        // 'blue' element is removed from arraylist        listIterator.remove();        // Printing the final ArrayList after removing        // elements from originally created ArrayList        System.out.println("List After remove() method =  "                           + colors);    }} | 
List Before remove() method = [Red, White, Blue, Pink, Black, Green] List After remove() method = [Red, White, Pink, Black, Green]
Time Complexity: O(n)
Auxiliary Space: O(1)
As constant extra space is used.
Case 2: If the element to be removed is known
Iterator/traverse over the ArrayList and increment the list Iterator. If we reached the required element then break the loop else we reach the end and nothing will be deleted.
Java
// Java Program to Remove an element from ArrayList// using ListIterator// Importing ArrayList and ListIterator classes// of java.util packageimport java.util.ArrayList;import java.util.ListIterator;public class GFG {    // Main driver method    public static void main(String[] args)    {        // Create an ArrayList        ArrayList<String> colors = new ArrayList<String>();        // Adding elements to the arraylist        colors.add("Red");        colors.add("White");        colors.add("Blue");        colors.add("Pink");        colors.add("Black");        colors.add("Green");        ListIterator<String> listIterator            = colors.listIterator();        // Print the original ArrayList created        System.out.println("List Before remove() :- "                           + colors);        // we want to remove Blue element from the arraylist        for (String it : colors) {            listIterator.next();            // if we reached to required element break the            // loop            if (it == "Blue")                break;        }        // remove color blue from arraylist        listIterator.remove();        System.out.println("List After remove():- "                           + colors);    }} | 
List Before remove() :- [Red, White, Blue, Pink, black, green] List After remove():- [Red, White, Pink, black, green]
Time Complexity: O(n)
Auxiliary Space: O(1)
As constant extra space is used.
 
				
					



