当前位置: 首页 > 面试题库 >

故障快速迭代器

陈渊
2023-03-14
问题内容

我得到这样的定义:顾名思义,快速失败的迭代器一旦意识到 自迭代开始以来 就已经改变了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()将检测到无效用法并抛出异常。请注意,此操作是尽力而为的,不能保证。



 类似资料:
  • 问题内容: Java中有两种迭代器:故障安全和故障快速。 这是什么意思,它们之间的区别是什么? 问题答案: 他们之间有什么区别… “故障安全”(在工程中)表示某些故障不会造成或只造成最小的损坏。严格地说,有 没有这样的事情 在Java中的故障安全迭代器。如果迭代器失败(通常为“失败”),则可能会发生损坏。 我怀疑您实际上是在说“弱一致性”迭代器。Javadoc说: “大多数并发Collection

  • 本文向大家介绍Java中故障快速和故障安全之间的区别,包括了Java中故障快速和故障安全之间的区别的使用技巧和注意事项,需要的朋友参考一下 序号 键 不及格 故障安全 1 例外 集合中的任何更改(例如在线程期间添加,删除和更新集合)都是迭代集合,然后使快速抛出并发修改异常失败。  故障安全集合不会引发异常。  2。 集合类型 ArrayList和hashmap集合是快速失败迭代器的示例  Copy

  • 1 谱聚类算法的原理   在分析快速迭代聚类之前,我们先来了解一下谱聚类算法。谱聚类算法是建立在谱图理论的基础上的算法,与传统的聚类算法相比,它能在任意形状的样本空间上聚类且能够收敛到全局最优解。 谱聚类算法的主要思想是将聚类问题转换为无向图的划分问题。 首先,数据点被看做一个图的顶点v,两数据的相似度看做图的边,边的集合由$E=A_{ij}$表示,由此构造样本数据集的相似度矩阵A,并求出拉普拉斯

  • 本文向大家介绍Java迭代快速排序程序,包括了Java迭代快速排序程序的使用技巧和注意事项,需要的朋友参考一下 下面是用于迭代快速排序的Java程序 示例 输出结果 一个名为Demo的类包含3个函数,“swap”用于使用临时变量交换值,一个“partition”函数根据主元素值将数组分为两半,以及“quick_sort”函数,该函数使用主元素值并基于该值对数组中的值进行排序。 在main函数中,将

  • 我正在尝试使用TensorFlow Lite和Android上的GPU代理。我使用的是从repo主分支的源代码构建的lib版本(.so文件)。问题是:ModifyGraphWithDelegate函数总是返回错误。日志中有以下错误消息: 如果我像在官方示例项目中一样使用JAVA/JNI预构建的lib版本('org.tensorflow:tensorflow-lite:0.0.0-gpu-exper

  • 问题内容: 我想知道是否有一种更快,更省时的方法来遍历元组列表,找到合适的匹配项。我要做的是: 根据列表中项目的数量,此代码可能需要花费一些时间才能执行。我敢肯定有更好的方法可以做到这一点。 问题答案: 假设更多的内存使用不是问题,并且如果元组的第一项是可哈希的,则可以从元组列表中创建字典,然后查找值就像从中查找键一样简单。就像是: 编辑 :要创建一个反向映射,请使用类似: