List删除指定数据的几种方法总结

时间:2025-03-29 14:18:29

1、for循环遍历list

List ss = new ArrayList();
(1);(2);(2);(4);
for(int i=0;i<();i++){
	if((i).equals(2)){
		(i);
        i--;
	}
}
输出结果:1,2,4
想要的结果:1,4

不能直接循环删除,因为删除一个元素的时候,后面的数据会整体往前一点一个位置,后面元素下标变了,会导致漏删某些元素。解决:每次如果删除了一个元素就 i-- ;

2、增强for循环

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

3、iterator遍历

Iterator<String> it = ();
while(()){
    String x = ();
    if(("del")){
        ();
    }
}

这种方式可以正常的循环及删除。但要注意的是,使用iterator的remove方法,如果用list的remove方法同样会报上面提到的ConcurrentModificationException错误。

总结:要看使用场景,如果只删除一个的话三种都能用,如果删除多个的话只能用Iterator迭代器遍历删除。