在做项目的过程中用到了,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会变小,可能会产生越界,建议用迭代器遍历移除

相关文章:

  • 2022-01-16
  • 2022-12-23
  • 2021-06-07
  • 2021-12-09
  • 2021-10-22
  • 2021-05-01
  • 2021-08-31
  • 2021-07-20
猜你喜欢
  • 2021-08-11
  • 2022-02-03
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
  • 2022-02-16
  • 2021-12-13
相关资源
相似解决方案