为什么“弱一致性迭代器”仅反映修改和删除更改,而不反映插入更改

时间:2018-07-25 03:07:21

标签: java collections iterator

我一直在阅读Java generics and collection这本书,在讨论iterator的部分中,作者提到

  

依赖CAS(比较和交换)的集合具有弱一致的迭代器,该迭代器   反映一些但不一定所有的变化   自创建以来就一直支持他们的收藏。例如,   如果集合中的元素在修改之前已被修改或删除,   迭代器到达它们,它肯定会反映出这些变化,但是   没有这样的保证插入。弱一致性迭代器   也不要抛出ConcurrentModificationException。

我想知道为什么weakly consistent iterator仅反映修改和删除更改,而不反映插入更改。定义这样的行为背后的原因是什么?它有什么用例?

1 个答案:

答案 0 :(得分:2)

我认为这是不正确的。 弱一致性迭代的official definition是:

  
      
  • 它们可以与其他操作同时进行
  •   
  • 他们永远不会抛出ConcurrentModificationException
  •   
  • 保证它们遍历原先存在的元素一次,并且可能(但不保证)反映   施工后进行的任何修改。
  •   

删除和插入之间没有区别。