集合中的快速失败
来源:互联网 发布:linq 删除重复数据 编辑:程序博客网 时间:2024/06/06 02:35
在ArrayList中存在一个变量modCount用来记录操作数。
在其内部类Itr中记录了另一个变量expectedModCount 在操作集合的时候modCount会加加,同时把操作数赋值给期望数,在使用迭代器进行操作集合时会先判断操作数是否等于期望数,如果不相等就直接抛出并发修改异常,因此在遍历非线程安全的数据结构时应该优先使用迭代器遍历。
public void add(E e) { checkForComodification(); try { int i = cursor; ArrayList.this.add(i, e); cursor = i + 1; lastRet = -1; expectedModCount = modCount; } catch (IndexOutOfBoundsException ex) { throw new ConcurrentModificationException(); } }
final void checkForComodification() { if (modCount != expectedModCount) throw new ConcurrentModificationException(); }
阅读全文
0 0
- 集合中的快速失败
- 快速失败(Java集合)
- java中的快速失败
- Java 集合类的快速失败
- Java集合框架-安全失败与快速失败
- java中的fail-fast(快速失败)机制
- java集合架构____集合迭代器快速失败行为及CopyOnWriteArrayList
- OC中的不可变集合、可变集合、计数集合与集合的快速遍历
- java中的快速失败(fail-fast)与安全失败(fail-safe)
- java中的快速失败(fail-fast)与安全失败(fail-safe)
- “快速失败”也就是fail-fast,Java集合的一种错误检测机制。
- 快速失败、经常失败、故意失败
- 快速失败、经常失败、故意失败
- 快速失败的Iterator
- 快速迭代失败
- 迭代器快速失败
- java快速失败分析
- Java-快速失败
- Map接口
- 深入理解 JavaScript 作用域和作用域链
- ubuntu编译opencv3和opencv2共存
- PPT2016内嵌Excel的动态图表
- javasctipt常用方法总结
- 集合中的快速失败
- 解决Android Button 字母自动全部大写的问题
- Template、ItemsPanel、ItemContainerStyle、ItemTemplate
- swift 中使用扩展实现代理
- [BZOJ]1069 [SCOI2007] 最大土地面积 凸包 + 旋转卡壳
- Sublime Text3安装
- Android模拟器创建与启动
- [ JS 进阶 ] test, exec, match, replace
- CHAPTER 11-Training Deep Neural Nets-part3