在做项目的过程中用到了,list.remove,踩了几个坑,在此记录一下
1.
List<Integer> list
list.remove(i);
当list内元素是Integer类型时,要注意remove的参数,是元素,还是元素的编号。
2.
list在remove是发生java.util.ConcurrentModificationException异常
需要使用迭代器的remove,不能直接用list的remove
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("111");
list.add("222");
list.add("333");
list.add("444");
list.add("555");
list.add("666");
list.add("777");
list.add("888");
Iterator<String> it=list.iterator();
int i=0;
while (it.hasNext()){
String s=it.next();
i++;
if(i==2){
it.remove();
System.out.println("remove:"+s);
System.out.println();
}
}
}
3.
for(int i=0;i<list.size();i++){
list.remove(i);
}
遍历list执行remove时,list的size会变小,可能会产生越界,建议用迭代器遍历移除