java中的ArrayList.remove(i)没有像应该的那样删除所有对象。

bluesky1年前 ⋅ 236 阅读

ChatGPT的回答仅作参考:

可能是因为您的ArrayList中包含重复的对象,而ArrayList.remove(i)只会删除第一个匹配的对象。如果您想删除所有匹配的对象,可以使用一个循环来遍历整个ArrayList并删除所有匹配的对象,例如:

```
for (int i = 0; i < list.size(); i++) {
    if (list.get(i).equals(obj)) {
        list.remove(i);
        i--; // 因为删除了一个元素,所以需要将i减1
    }
}
```

其中,obj是您想要删除的对象。这个循环会遍历整个ArrayList,如果找到了一个匹配的对象,就删除它并将i减1,以便下一次循环可以检查同一个位置。这样就可以删除所有匹配的对象了。

全部评论: 0

    相关推荐