2011-08-05 71 views
4

如果我對任何列表創建一個Iterator對象,我必須每次都創建一個新的迭代器對象,我遍歷列表?或者添加或從列表中刪除的新項目自動被先前創建的迭代器考慮?創建一個新的迭代器對象每次我遍歷列表

+0

你爲什麼不嘗試一下? –

回答

8

Iterator是一個一次性使用的工具。每次遍歷列表時,通常都需要一個新的。然而,這不是一件壞事; Iterator s只有很少的狀態(對於ArrayList,它可能只是一個int來保存當前索引)。

如果支持列表的迭代器調用之間修改,你會得到迭代器操作的ConcurrentModificationException。添加或刪除項目必須使用Iterator本身完成。