In other words, you can call IteratorCollection.iterator() as often as you want, but the IteratorCollection will iterate over its delegate only once.