A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 千尊 中级黑马   /  2015-8-29 22:10  /  196 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Iterator常用在集合的遍历功能中,它与增强for有着异曲同工之妙。但在使用中也许会碰到ConcurrentModificationException(也就是并发修改异常)。举个例子;
List list =  new  ArrayList();
list.add("hello");
list.add("world");
Iterator it = list.iterator();
While(it.hasNext()){
                 String s = (String) it.next();
                  if(("hello").equals(s)){
                     list.add("abc");
}
}                     
           此代码中就会出现并发修改异常,应为迭代器是依赖集合存在,集合发生变化,迭代器不发生变化是不容许的。
      解决次异常两种方式分别为完全通过集合实现(普通for循环再结合get方法完成) 第二种是完全通过迭代器实现(只需将Iterator it = list.iterator();改为ListIterator it = list.listIterator();即可)。此问题也是面试中的常见问题,给大家分享下。,

评分

参与人数 1黑马币 +20 收起 理由
痴人说梦 + 20 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马