黑马程序员技术交流社区

标题: 迭代器的用法及常见问题 [打印本页]

作者: 千尊    时间: 2015-8-29 22:10
标题: 迭代器的用法及常见问题
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();即可)。此问题也是面试中的常见问题,给大家分享下。,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2