I didn't know about iterators, however here's what I was doing until today to remove elements from a list inside a loop:
List names = ....
for (i=names.size()-1;i>=0;i--) {
// Do something
names.remove(i);
}
This is always working, and could be used in other languages or structs not supporting iterators.