How to modify a Collection while iterating using for-each loop without ConcurrentModificationException?

aps picture aps · Aug 5, 2011 · Viewed 55k times · Source

If I modify a Collection while iterating over it using for-each loop, it gives ConcurrentModificationException. Is there any workaround?

Answer

mre picture mre · Aug 5, 2011

Use Iterator#remove.

This is the only safe way to modify a collection during iteration. For more information, see The Collection Interface tutorial.

If you also need the ability to add elements while iterating, use a ListIterator.