//创建集合对象
Collection c = new ArrayList();
c.add("hello");
c.add("world");
c.add("java"); Iterator it = c.iterator();
while(it.hasNext()){
String s = (String)it.next();
if(s.equals("java")){
c.add("android");//报错 并发异常
}
}

迭代器是依赖于集合的,相当于集合的一个副本,当迭代器在操作的时候,如果发现和集合不一样,就会抛出异常

解决方案:

     在使用迭代器进行遍历的时候使用迭代器来修改,不使用集合修改

//使用List创建集合对象
List c = new ArrayList();
c.add("hello");
c.add("world");
c.add("java"): ListIterator lit = c.listIterator();
while(lit.hasNext()){
String s = (String)lit.next();
if(s.equals("java")){
lit.add("android");//注,此处不要用集合c添加,要用迭代对象lit添加,它就会去同步集合
}
} System.out.println(c);//[hello,world,java,android]

最新文章

  1. html5视频播放插件
  2. MFC创建对话框组件对应变量并进行设置值(VS2010)
  3. [置顶] 如何在浏览器中打开PDF文件并实现预览的思路与代码
  4. 在VS工程中,添加c/c++工程中外部头文件及库
  5. 计蒜客模拟赛D2T1 蒜头君的兔子:矩阵快速幂
  6. Redis集群介绍
  7. caffe源码 池化层 反向传播
  8. HTML5 浏览器支持
  9. python 日期换算星期 蔡勒公式
  10. 【转】CSRF基本概念
  11. 页面按钮埋点+跟踪location.search
  12. 多线程Java Socket编程示例
  13. [Visual Studio] .vsix项目模板制作
  14. JS计算本周一和本周五的日期
  15. sumatrapdf 软件介绍
  16. [洛谷P2495][SDOI2011]消耗战
  17. 【转】用Jmeter进行接口压力测试的步骤
  18. vsftpd修改被动模式数据端口
  19. JAVA 利用SimpleDateFormat将String转换为格式化的日期
  20. 最长上升子序列&&最长不下降子序列

热门文章

  1. Python全栈之路----函数进阶----装饰器
  2. 使用loadrunner监控apcahe
  3. 无旋treap
  4. 解决 windows下安装Anaconda后python pip不可用的情况
  5. MySQL:System.Data.Entity ,MySqlCommand, MySqlParameter and "LIKE" %
  6. 黄聪:windows下使用xampp3.2.2配置多个监听端口和不同的网站目录
  7. sequelize的mssql配置
  8. Scrapy实战篇(三)之爬取豆瓣电影短评
  9. api.js封装请求
  10. HTML5 使用小结