首先,它们是 快速 故障的,而不是故障 安全的 。
合同规定,对某些类型的集合进行结构修改(即插入/删除)会使集合中的现有迭代器无效。快速失败的迭代器尝试检测到它们不应该有效并抛出
ConcurrentModificationException。这是对您(程序员)的一项服务,以帮助您更快地发现此类错误。
在您的示例中:
Iterator it = set.iterator();it.next();set.add("unique-entry"); // invalidates the iteratorit.next();如果幸运的话,第二个
it.next()将检测到无效用法并抛出异常。请注意,此操作是尽力而为的,不能保证。



