在迭代集合时是否可以向集合中添加元素?
更具体地说,我想遍历一个集合,如果一个元素满足特定条件,我想向集合中添加一些其他元素,并确保也对这些添加的元素进行遍历。(我意识到这可能会导致循环终止,但是我很确定不会发生这种情况。)
Sun 的Java教程建议不可能:“请注意,这Iterator.remove是在迭代过程中修改集合的唯一安全方法;如果在迭代进行过程中对基础集合进行了其他任何修改,则行为未指定。”
Iterator.remove
因此,如果我无法使用迭代器做我想做的事情,那么你建议我做些什么?
如何使用要迭代的元素构建队列?当您想添加元素时,将它们排入队列的末尾,并继续删除元素,直到队列为空。广度优先搜索通常是这样工作的。