Welcome to the Ranch
I have added
code tags to your post, and you can see how much better it looks
The correct question, which I don't know the answer to, is, “Why are you
not suffering a concurrent modification Exception when you attempt to remove
e?” You doubtless already know that
you should only use the
Iterator#remove() method for making any structural alterations to your List. You should expect that Exception whenever you remove anything with the
List#remove(java.lang.Object) method. You can see after removing e that hasNext() is false, so f is not printed.
Otherwise: don't know. Anybody else?