`
幽灵线程
  • 浏览: 78403 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

删除集合元素时务必使用迭代器

    博客分类:
  • java
 
阅读更多

遍历集合删除元素

1、绝对错误的方式
List list = xxxService.getAll();
for(Object obj : list ){
     list.remove(obj );  //此方式必然导致ConcurrentModificationException
}
2、使用Iterator重构,但不够彻底,出现同样的异常,却难以排查。
 
List list = xxxService.getAll();
for(Iterator objIter =  list.iterate();obj.hasNext(); ){
     list.remove(obj );  //此方式也导致ConcurrentModificationException
}
 
3、使用迭代子删除方式

List list = xxxService.getAll();
for(Iterator objIter =  list.iterate();obj.hasNext(); ){
     objIter .remove();  //终于尼玛搞定
}
 


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics