简单复习一下集合顺带提一下这个错误,其实也比较常见,大多是因为疏忽的原因吧;

我们创建一个集合,添加了一些元素,使用迭代器来遍历,然后遍历途中需要进行一些逻辑操作,对集合进行修改,然后就报错了,这是什么原因呢?

集合是集合,迭代器是迭代器,两个不是同一个东西,可以把迭代器理解为集合的一个快照或副本,当两者的内容不一致的时候,就抛出   new ConcurrentModificationException();

源码中不难发现:

而上面那两个变量就是判断集合改变而定义的count

    public static void main(String[] args) {
Collection list = new ArrayList<>();
list.add("xiaowang");
list.add("dawang");
list.add("laowang");
System.out.println(list.toString()); Iterator iterator = list.iterator();
while (iterator.hasNext()) {
String s = (String) iterator.next();
if (s.equals("xiaowang")) {
list.add("gebilaowang");
}
}

最新文章

  1. git 远程库命令
  2. cocos2d-x在Android平台下的音频导致的卡死
  3. aop注解
  4. PeopleSoft登录流程
  5. .net 高效管理稀缺资源(数据库资源,文件资源等)
  6. (转)SqlServer2008 数据库同步的两种方式 (发布、订阅)
  7. [转载]在網頁上加入HTML5 的Video Tag,直接播放MP4、OGG…等
  8. I.MX6 Android Linux shell MMPF0100 i2c 设置数据
  9. screen space directional occlusion(SSDO) in Unity5
  10. Excel.Application SaveAs 把excel转换为html
  11. css样式float造成的浮动“塌陷”问题的解决办法
  12. 打印org.eclipse.xsd.XSDSchema对象
  13. Centos6.3不能使用yum install安装gcc编辑器解决办法
  14. angular学习(一)-- Expression
  15. 与webview打交道踩过的坑
  16. laravel 表单方法伪造
  17. 【Spark工作原理】stage划分原理理解
  18. SpringBoot配置文件的加载位置
  19. 【Eclipse使用】在eclipse里添加源文件和Api的方法
  20. 对于java自定义的工具类的提炼 注意事项

热门文章

  1. 洛谷 P3835: 【模板】可持久化平衡树
  2. numpy之ones,array,asarray
  3. docker制作镜像步骤
  4. 【技巧总结】Penetration Test Engineer[5]-Operating System Security(SQL Server、MySQL提权)
  5. MVVM模式的 数据绑定
  6. unity 欧拉旋转
  7. 29 A Quick Guide to Go&#39;s Assembler 快速指南汇编程序:使用go语言的汇编器简介
  8. 应用服务器中对JDK的epoll空转bug的处理
  9. Java事务管理之Hibernate
  10. Sqlserver双机热备文档(无域)