微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

故障快速迭代器

如何解决故障快速迭代器

首先,它们是 故障的,而不是故障 。

合同规定,对某些类型的集合进行结构修改(即插入/删除)会使集合中的现有迭代器无效。快速失败的迭代器尝试检测到它们不应该有效并抛出ConcurrentModificationException。这是对您(程序员)的一项服务,以帮助您更快地发现此类错误

在您的示例中:

Iterator it = set.iterator();
it.next();
set.add("unique-entry"); // invalidates the iterator
it.next();

如果幸运的话,第二个it.next()将检测到无效用法并抛出异常。请注意,此操作是尽力而为的,不能保证。

解决方法

我得到这样的定义:顾名思义,快速失败的迭代器一旦意识到 自迭代开始以来 就已经改变了Collection的结构,它就会失败。

自迭代开始以来 是什么意思?是在 Iterator it = set.iterator()之后的 这行代码的意思吗?

public static void customize(BufferedReader br) throws IOException{  
    Set<String> set=new HashSet<String>(); // Actual type parameter added  
    **Iterator it=set.iterator();**

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。