fail-fast:

  fail-fast(快速失败),是Java集合的一种错误检测机制。当在遍历集合的过程中该集合在结构(改变集合大小)上发生变化时候,有可能发生fail-fast(快速失败行为不能得到保证,点击查看详情),尽最大可能抛出java.util.ConcurrentModificationException异常。因此,编写依赖于此异常的程序的做法是不正确的。正确的做法应该是:迭代器的快速失败行为应该仅用于检测程序中的bug.

 

fail-safe:

  在使用迭代器进行遍历集合的时候不是直接在集合本身上进行,而是先复制原有的集合的内容,然后在复制的集合上进行遍历, 所以在遍历过程中原集合中所做的修改不能被迭代器检测到,所以不会抛出ConcurrentModificationException异常!

  缺点:在复制时需要额外的开销; 迭代器不能访问到在其访问期间集合修改后的内容。

 

相关文章:

  • 2021-08-23
  • 2022-02-01
  • 2021-07-03
  • 2022-01-08
  • 2021-04-13
  • 2022-12-23
  • 2021-07-25
猜你喜欢
  • 2021-12-19
  • 2021-11-30
  • 2021-12-02
  • 2021-06-23
  • 2022-12-23
  • 2022-01-22
相关资源
相似解决方案