欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

List 中 remove 的使用

程序员文章站 2022-06-13 09:33:38
...

 

for (int i = 0; i < list.size(); i++) {
			if (((String) list.get(i)).startsWith("abcde")) {
				list.remove(i);
			}
		}

 List每remove掉一个元素以后,后面的元素都会向前移动,此时如果执行i=i+1,则刚刚移过来的元素没有被读取

 

 

1.倒过来遍历list

 

for (int i = list.size()-1; i > =0; i--) {
  if (((String) list.get(i)).startsWith("abcde")) {
   list.remove(i);
  }
}

 

2.每移除一个元素以后再把i移回来

 

for (int i = 0; i < list.size(); i++) {
  if (((String) list.get(i)).startsWith("abcde")) {
   list.remove(i);
   i=i-1;
  }
}

 

3.使用iterator.remove()方法删除

for (Iterator it = list.iterator(); it.hasNext();) {
  String str = (String)it.next();
  if (str.equals("chengang")){
   it.remove();
  }
}