Java collection iteration with element removal: Best practices

  1. Introduction
  2. Using Iterator
  3. Using Collection.removeIf()
  4. Conclusion


When working with Java collections, it is not uncommon to come across situations where we need to remove elements while iterating over them. However, this can be a tricky task and if not done properly, it can lead to unexpected behavior and even errors. In this article, we will discuss the best practices for iterating over Java collections and removing elements safely.

Using Iterator

One of the most common ways to iterate over a collection and remove elements is by using an Iterator. The Iterator interface provides methods to traverse a collection and remove elements safely. Here is an example:

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String element =;
    if (element.contains("remove")) {

In this example, we create an Iterator for a List of Strings and iterate over it using a while loop. We check if the element contains the word "remove" and if it does, we remove it using the iterator's remove() method. Note that calling remove() on the iterator will remove the current element and any subsequent elements will be shifted to the left.

Using Collection.removeIf()

Java 8 introduced a new method to the Collection interface, removeIf(), which allows us to remove elements from a collection based on a condition. Here is an example:

list.removeIf(element -> element.contains("remove"));

In this example, we use the removeIf() method to remove elements from a List of Strings that contain the word "remove". This method is more concise and can be more efficient than using an Iterator.


When iterating over a Java collection and removing elements, it is important to do it safely to avoid unexpected behavior and errors. Using an Iterator or the removeIf() method are both effective ways to remove elements from a collection while iterating over it. Remember to always test your code thoroughly to ensure that it is working as expected.

Click to rate this post!
[Total: 0 Average: 0]

Related posts

Leave a Reply

Your email address will not be published. Required fields are marked *

Go up

Below we inform you of the use we make of the data we collect while browsing our pages. You can change your preferences at any time by accessing the link to the Privacy Area that you will find at the bottom of our main page. More Information