每次遍历列表时都创建一个新的迭代器对象

时间:2011-08-05 20:22:39

标签: java iterator

如果我在任何List上创建一个Iterator对象,每次遍历列表时是否必须创建一个新的迭代器对象?或者,从列表中添加或删除的新项目是否会由先前创建的迭代器自动解决?

1 个答案:

答案 0 :(得分:8)

Iterator是一次性实用程序。每次遍历列表时,通常需要一个新的。然而,这不是一件坏事; Iterator的状态非常少(对于ArrayList,它可能只是一个保存当前索引的int。)

如果在迭代器调用之间修改了支持列表,您将从迭代器操作中获得ConcurrentModificationException。必须使用Iterator本身添加或删除项目。