如果我在任何List上创建一个Iterator对象,每次遍历列表时是否必须创建一个新的迭代器对象?或者,从列表中添加或删除的新项目是否会由先前创建的迭代器自动解决?
答案 0 :(得分:8)
Iterator
是一次性实用程序。每次遍历列表时,通常需要一个新的。然而,这不是一件坏事; Iterator
的状态非常少(对于ArrayList
,它可能只是一个保存当前索引的int。)
如果在迭代器调用之间修改了支持列表,您将从迭代器操作中获得ConcurrentModificationException
。必须使用Iterator
本身添加或删除项目。