/*
删除ArrayList集合中的 "bbb" 元素.
*/
public class list {
public static void main(String[] args) {
// 定义ArrayList集合,并存入多个字符串。
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("bbb");
list.add("ccc");
list.add("bbb");
list.add("bbb");
list.add("aaa");
System.out.println("删除之前:"+list);
// 使用普通for循环遍历 , 删除元素 bbb
for (int i = 0; i < list.size(); i++) {
// 判断集合中元素是否和bbb相等.
if("bbb".equals(list.get(i))){
list.remove(i);
i--; // 重点 - 一定要注意写!
}
}
System.out.println("删除之后:"+list);
}
}
删除之前:[aaa, bbb, bbb, ccc, bbb, bbb, aaa]
删除之后:[aaa, bbb, ccc, bbb, aaa] <-- 没有i--的情况下:
删除之后:[aaa, ccc, aaa] <-- 有i--的情况下:
list.size()会动态改变。但注意i一直在递增。如果没有i--这行代码,假设集合中前两个成员都应被删除,那么删了0号成员后,原先的1号成员就变成了新的0号成员,但i却递增到了1,这样就会漏删。