ちなみに注意点ももちろんある。
質問者さんが初心者っぽいので補足しておくよ。
当然ながら、通常、イテレーション中にそのListの
要素を追加・削除などをするのは危険ですぞ。
危険というのはどうなるかわからないという意味。
イテレーションの動作はそれぞれのIteratorの
実装依存だからね。

もしも、イテレーションしながらListの要素を
追加・削除したいのであれば、2つの方法がある。
1つはListのディープコピーをとり、イテレーションは
そのコピーに対して行い、追加・削除はもとのListに
対して行う。
もう一つはIteratorがイテレーション中に要素が
追加・削除されることに対応する実装にすること。

まぁ、2番目の方法ではListとの共同作業になるだろうけどね。
Listは自分が生成したIteratorの状態を見て、
適切にそのItereatorの状態を変化させるみたいな。

#ディープコピーっていうのは実体ごとコピーすること。