ArrayList遍历的同时删除--- 删除还是用迭代器的比较好,其它的都会有问题.
http://javag.iteye.com/blog/403097
方法一
- ArrayList<String> list = new ArrayList<String>();
 - list.add("one");
 - list.add("two");
 - list.add("two");
 - list.add("two");
 - list.add("two");
 - for(int i=0;i<list.size();i++){
 - if(list.get(i).equals("two")){
 - list.remove(i);
 - }
 - }
 - System.out.println(list);
 
结果:
- [one, two, two]
 
方法二
- ArrayList<String> list = new ArrayList<String>();
 - list.add("one");
 - list.add("two");
 - list.add("two");
 - list.add("two");
 - list.add("two");
 - for(String s:list){
 - if(s.equals("two")){
 - list.remove(s);
 - }
 - }
 - System.out.println(list);
 
结果:
- Exception in thread "main" java.util.ConcurrentModificationException
 - at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
 - at java.util.AbstractList$Itr.next(AbstractList.java:343)
 - at Test.main(Test.java:22)
 
方法三:
- ArrayList<String> list = new ArrayList<String>();
 - list.add("one");
 - list.add("two");
 - list.add("two");
 - list.add("two");
 - list.add("two");
 - Iterator<String> iter = list.iterator();
 - while(iter.hasNext()){
 - String s = iter.next();
 - if(s.equals("two")){
 - iter.remove();
 - }
 - }
 - System.out.println(list);
 
结果:
- [one]
 
结论:
删除还是用迭代器的比较好,其它的都会有问题.
ArrayList遍历的同时删除--- 删除还是用迭代器的比较好,其它的都会有问题.的更多相关文章
- 【原理探究】女朋友问我ArrayList遍历时删除元素的正确姿势是什么?
		
简介 我们在项目开发过程中,经常会有需求需要删除ArrayList中的某个元素,而使用不正确的删除方式,就有可能抛出异常.或者在面试中,会遇到面试官询问遍历时如何正常删除元素.所以在本篇文章中,我们会 ...
 - 【转】ArrayList遍历的同时删除----不错
		
原文网址:http://javag.iteye.com/blog/403097 方法一 ArrayList<String> list = new ArrayList<String&g ...
 - 遍历List集合,删除符合条件的元素
		
List集合的遍历有三种方式:增强for循环,普通for循环,Iterator迭代器遍历 如果只是对集合进行遍历,以上三种循环都可正常遍历: (1)增强For循环遍历List集合 List<St ...
 - Java遍历List的时候删除item
		
参考:http://blog.csdn.net/longyulu/article/details/8315068 在Java中有时候我们会需要对List里面的符合某种业务的数据进行删除,但是如果不了解 ...
 - 遍历List过程中删除元素的正确做法(转)
		
遍历List过程中删除元素的正确做法 public class ListRemoveTest { 3 public static void main(String[] args) { 4 ...
 - 【Java】集合(List、Set)遍历、判断、删除元素时的小陷阱
		
开发中,常有场景:遍历集合,依次判断是否符合条件,如符合条件则删除当前元素. 不知不觉中,有些陷阱,不知你有没有犯. 一.漏网之鱼-for循环递增下标方式遍历集合,并删除元素 如果你用for循环递增下 ...
 - 对JAVA集合进行遍历删除时务必要用迭代器
		
java集合遍历删除的方法: 1.当然这种情况也是容易解决,实现方式就是讲遍历与移除操作分离,即在遍历的过程中,将需要移除的数据存放在另外一个集合当中,遍历结束之后,统一移除. 2.使用Iterato ...
 - ArrayList在foreach正常迭代删除不报错的原因
		
一.背景 在以前的随笔中说道过ArrayList的foreach迭代删除的问题:ArrayList迭代过程删除问题 按照以前的说法,在ArrayList中通过foreach迭代删除会抛异常:java. ...
 - STL中vector的赋值,遍历,查找,删除,自定义排序——sort,push_back,find,erase
		
今天学习网络编程,那个程序中利用了STL中的sort,push_back,erase,自己没有接触过,今天学习一下,写了一个简单的学习程序.编译环境是VC6.0 这个程序使用了vect ...
 
随机推荐
- CodeForces 698B  Fix a Tree (并查集应用)
			
当时也是想到了并查集,但是有几个地方没有想清楚,所以就不知道怎么写了,比如说如何确定最优的问题.赛后看了一下别人的思路,才知道自己确实经验不足,思维也没跟上. 其实没有那么复杂,这个题目我们的操作只有 ...
 - php curl调用相关api
			
一.基本步骤 1.本次模拟是php的相关post请求,可通过CURLOPT_CUSTOMREQUEST设定相关POST.GET.PUT.DELETE相关适应REST API 2.相关重要的是curl_ ...
 - C语言_函数【转】
			
引用地址:http://baike.baidu.com/link?url=U9h6MccLYX2w5uyVOqIFd3eps5gR2FZA10jYRLRnc66Ff_F5ZrmXGKA12DT-_2x ...
 - 手把手教你ranorex_android自动化测试第一个示例
			
要说android的自动化,那真是折腾死我了,从早期的monkeyrunner,到后来的robotium,再到最新的uiautomator,各有各的问题,总之性价比都不够高,不太适合我的使用场景.于是 ...
 - VBS基础篇 - 对象(7) - TextStream对象
			
VBS基础篇 - 对象(7) - TextStream对象 TextStream对象是用于访问文本文件的对象,它是FileSystemObject一个独立的附属对象,但在使用TextStream对 ...
 - 理解 php 中& 引用
			
php中引用&的真正理解-变量引用.函数引用.对象引用 php的引用(就是在变量或者函数.对象等前面加上&符号) //最重要就是 删除引用的变量 ,只是引用的变量访问不了,但是内容并没 ...
 - OpenCV使用边缘提取、腐蚀、轮廓进行车牌定位
			
http://blog.csdn.net/superdont/article/details/24935383 OpenCV使用边缘提取.腐蚀.轮廓进行车牌定位 2014-05-03 21:38 67 ...
 - hdu_1848_Fibonacci again and again(博弈sg函数)
			
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1848 题意:给你3堆石子,每次只能取fibonacci数的石子,问先手是否能赢 题解:SG函数模版题 ...
 - 读书有感——《从毕业生到程序员使用C#开发商业软件》
			
本来想自己写个读书感悟之类的东西,但是苦于自己语文水平太差,算了,我把里面觉得很赞的内容摘抄下来就好了(学习都是从模仿开始的嘛). 书籍:<从毕业生到程序猿使用C#开发商业软件> 作者:袁 ...
 - nodejs 命令篇
			
1.npm init // 生成package.json 2.npm install --save-dev gulp-jslint // 安装gulp-jslint模块,并把模块名和版本保存到pack ...