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

java – 失败快速迭代器

我得到了这个定义:正如名称所暗示的那样,一旦他们意识到自迭代开始以来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();**

解决方法

首先,它们是快速失败的,而不是故障安全的.

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

在你的例子中:

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

如果你很幸运,第二个it.next()将检测无效使用并抛出异常.请注意,这是在尽力而为的基础上完成的,并不能保证.

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

相关推荐