Java中循环删除List中元素总结

来源:互联网 发布:舞蹈教学的软件 编辑:程序博客网 时间:2024/06/05 20:59

印象中删除List中的元素有三种方式:for循环、增强for循环、iterator遍历;

一、for循环遍历

for(int i=0;i<list.size();i++){    if(list.get(i).equals("mis"))        list.remove(i);}

这种方式的问题在于,删除某个元素后,list的大小发生了变化,而你的索引也在变化,所以会导致你在遍历的时候漏掉某些元素。比如当你删除第1个元素后,继续根据索引访问第2个元素时,因为删除的关系后面的元素都往前移动了一位,所以实际访问的是第3个元素。因此,这种方式可以用在删除特定的一个元素时使用,但不适合循环删除多个元素时使用。

二、增强for循环

for(String x:list){    if(x.equals("del"))        list.remove(x);}
这种方式的问题在于,删除元素后继续循环会报错误信息ConcurrentModificationException,因为元素在使用的时候发生了并发的修改,导致异常抛出。但是删除完毕马上使用break跳出,则不会触发报错。

三、iterator遍历

Iterator<String> it = list.iterator();while(it.hasNext()){    String x = it.next();    if(x.equals("del")){        it.remove();    }}
这种方式可以正常的循环及删除。但要注意的是,使用iterator的remove方法,如果用list的remove方法同样会报上面提到的ConcurrentModificationException错误。

总结:删除元素要根据不同的情况来判断,如果要删除List中的多个元素要使用iterator遍历的方法

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 笛拼音 牧高笛 笛组词 慕初笛霍骁 霍骁幕初笛全文免费 笛的拼音 谁家玉笛暗飞声 弄笛作品 铁笛片 笛梵 笛拼音怎么拼 笛子 笛怎么读 笛的笔顺 笛笛 妆笛面膜 6孔陶笛指法 12孔陶笛价格 6孔陶笛 12孔陶笛好学吗 火斑笛鲷 6孔陶笛指法表 四孔陶笛 12孔陶笛入门基础教程 紫竹笛 12孔陶笛曲谱大全 12孔陶笛曲谱 四孔陶笛曲谱 bari笛头 诗笛姗 温尼笛头 枫笛沙发 十二孔陶笛自学教程 十二孔陶笛曲谱 风雅四孔陶笛乐谱 怎样识笛谱 风雅十二孔陶笛 李白春夜洛城闻笛 葬花吟笛谱 陶笛 6孔 女儿情6孔陶笛谱