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(); } }
上一篇: DELPHI有关延迟执行的问题