gpt4 book ai didi

java - 快速失败迭代器

转载 作者:搜寻专家 更新时间:2023-11-01 01:13:39 25 4
gpt4 key购买 nike

我得到了这个定义:顾名思义,快速失败迭代器一旦意识到集合的结构已被更改因为迭代已经开始就会失败。

自迭代开始 是什么意思? 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() 将检测到无效用法并抛出异常。请注意,这是在尽力而为的基础上完成的,并不能保证。

关于java - 快速失败迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13549927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com