您的位置:首页 > 编程语言 > Java开发

JAVA中LISt遍历时如何remove元素

2017-07-26 17:08 399 查看
遍历删除List中的元素有很多种方法,当运用不当的时候就会产生问题。下面主要看看以下几种遍历删除List中元素的形式:

第一种:普通for循环正向遍历

for(int i = 0;i < list.size();i++){
String b = list.get(i);
if(b.equals("502323232")){
list.remove(i);
i--;
}
}
/*
这里不i--不会报异常,但是删除后得到的
数据不一定是正确的,这主要是因为删除元素后,被删除元素后
的元素索引发生了变化。假设被遍历list中共有10个元素,当
删除了第3个元素后,第4个元素就变成了第3个元素了,第5个就变成
了第4个了,但是程序下一步循环到的索引是第4个,
这时候取到的就是原本的第5个元素了。这样就会造成删除数据不全
*/

第二种:普通for循环反向遍历
for(int i = list.size() - 1;i >= 0;i--){
String b = list.get(i);
if(b.equals("502323232")){
list.remove(i);
}
}

第三种:迭代器遍历list删除元素是可以的,不过要注意用的是iterator的remove方法,如果用list.remove会报错java.util.ConcurrentModificationException
Iterator<String> iter = list.iterator();
while(iter.hasNext()){
String b = iter.next();
if(b.equals("502323232")){
iter.remove();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  csdn 遍历