Open In App

Java Program to Remove an Element from ArrayList using ListIterator

Last Updated : 03 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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();
  1. Index to be removed
  2. 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:

  1. Create ArrayList instance new ArrayList<String>();
  2. Add elements in ArrayList colors using colors.add(“Red”);
  3. Create ListIterator instance of colors.listIterator();
  4. Print list elements before removing elements.
  5. Increment the iterator by listIterator.next() and move to element which you want to remove;
  6. Remove the element by listIterator.remove();
  7. 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 package
import 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);
    }
}


Output

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 package
import 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);
    }
}


Output

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.
 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads