There are two ways to remove an element from ArrayList.
a. remove(int index) : Accept the index of the object to be deleted.
b. remove(Object obj): Accept object to be removed.
What if we have an ArrayList of integers and want to remove elements? For example, consider the following program.
// Java program to demonstrate working of remove // on an integer arraylist import java.util.List; import java.util.ArrayList; public class GFG { public static void main(String[] args) { List al = new ArrayList<>(); al.add(10); al.add(20); al.add(30); al.add(1); al.add(2); // This makes a call to remove(int) and // removes element 20. al.remove(1); // Now element 30 is moved one position back // So element 30 is removed this time al.remove(1); System.out.println("Modified ArrayList : " + al); } }
Output :
Modified ArrayList : [10, 1, 2]
We see that the transmitted parameter is considered as an index. How to delete items by value.
// Java program to demonstrate working of remove // on an integer arraylist import java.util.List; import java.util.ArrayList; public class GFG { public static void main(String[] args) { List al = new ArrayList<>(); al.add(10); al.add(20); al.add(30); al.add(1); al.add(2); // This makes a call to remove(Object) and // removes element 1 al.remove(new Integer(1)); // This makes a call to remove(Object) and // removes element 2 al.remove(new Integer(2)); System.out.println("Modified ArrayList : " + al); } }
Output :
Modified ArrayList : [10, 20, 30]
2. Using Iterator.remove() method : It is not recommended to use ArrayList.remove() when iterating over elements. This can cause a ConcurrentModificationException (see this for an example program with this exception). When iterating over elements, it is recommended that you use the Iterator.remove() method.
// Java program to demonstrate working of // Iterator.remove() on an integer arraylist import java.util.List; import java.util.ArrayList; import java.util.Iterator; public class GFG { public static void main(String[] args) { List al = new ArrayList<>(); al.add(10); al.add(20); al.add(30); al.add(1); al.add(2); // Remove elements smaller than 10 using // Iterator.remove() Iterator itr = al.iterator(); while (itr.hasNext()) { int x = (Integer)itr.next(); if (x < 10) itr.remove(); } System.out.println("Modified ArrayList : " + al); } }