There are two way to remove an element from ArrayList.
1. By using remove() methods :
ArrayList provides two overloaded remove() method.
a. remove(int index) : Accept index of object to be removed.
b. remove(Obejct obj) : Accept object to be removed.
What happens when we have an integer arrayList and we want to remove an item? For example consider below 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<Integer> 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 can see that the passed parameter is considered as index. How to remove elements 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<Integer> 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 may lead to ConcurrentModificationException (Refer this for a sample program with this exception). When iterating over elements, it is recommended to use 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<Integer> 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); } } |
Output :
Modified ArrayList : [10, 20, 30]
This article is attributed to GeeksforGeeks.org
leave a comment
0 Comments