关于 List 删除元素的笔记 作者: Chuwen 时间: 2020-10-15 分类: Java # 有以下代码 > 个人理解,可能有错 `MiBean.java` ``` public class MiBean { private int id; private String name; public MiBean(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } ``` ``` List miBeanLists = new ArrayList<>(); miBeanLists.add(new MiBean(9, "小米 10")); miBeanLists.add(new MiBean(8, "小米 10 Pro")); miBeanLists.add(new MiBean(7, "小米 10 Ultra")); miBeanLists.add(new MiBean(12, "Redmi K30 Pro")); miBeanLists.add(new MiBean(11, "Redmi K30 5G")); miBeanLists.add(new MiBean(10, "Redmi K30 4G")); //我以为可以直接遍历,然后调用 remove 方法移除 for(int i=0; i 究其原因,原来是当删除之后 `i 因为我们之前删除了一个,所以在删除之后加一句 i--; 就可以全部删除了 --- > 复制别人总结的 >> 在代码中,删除元素后,需要把下标减一。这是因为在每次删除元素后,ArrayList会将后面部分的元素依次往上挪一个位置(就是copy),所以,下一个需要访问的下标还是当前下标,所以必须得减一才能把所有元素都遍历完 标签: Java