I need to write a simple function that will delete all entries in the List
that contains objects of the class Elem
. I wrote the function remo
You must use itr.remove()
and not this.tokens.remove(e)
while removing elements while iterating.
For more details, look at Iterator.remove()
I am assuming that tokens
is your Arraylist?
When removing elements dynamically from an array list, you need to use the .remove method provided by the iterator. So you need to do something like this:
public void removeAllElements() {
Iterator itr = this.elements.iterator();
while(itr.hasNext()) {
Object e = itr.next();
itr.remove();
}
}
If you want to just remove all the elements from the list, you can call the .clear method of the Arraylist:
Removes all of the elements from this list. The list will be empty after this call returns.
You have to call the iterator's "remove" method: http://www.java-examples.com/remove-element-collection-using-java-iterator-example.
The code doesn't compile. What is this.tokens
?
Anyway, if you want to remove an element while iterating, you must do it using the iterator's remove method:
itr.next();
itr.remove();
Your removeAllElements
method could just do this.elements.clear()
, though. Much more straightforward and efficient.