java在循环操作remove()集合的时候遇到的问题

在开发中遇到一个bug,发现不足,记录下来

1.场景:

循环List,删除满足条件的内容

2.问题:

循环此时与集合长度不符

3.原因

因为执行了remove操作,导致循环下标穿透,导致内容判断疏漏

4.原理

我特意花了一个图,一图胜千言啊:

java在循环操作remove()集合的时候遇到的问题

5.解决方案

有两种解决方案:

第一种:remove后令循环index执行i--操作

第二种:利用迭代器对集合进行操作