循环删除List集合的错误

  • 症状:不是郝柱也能看到灾备
  • 分析:调试发现动作中有两个灾备,不过只过滤了其中一个
  • 错误所在:代码如下,这里for循环删除List逻辑出问题了,犯了一个比较基础的错误 : 两个灾备动作索引是相邻的,当我remove掉第一个时紧跟着的动作就会取代它原来的位置,最终导致问题发生
循环删除List集合的错误_第1张图片
  • 修改方案:解决此问题方法有多种:①倒序remove②new一个List存放要删除所有元素,然后removeAll(list)③如下图,与第二种类似,更加直观
循环删除List集合的错误_第2张图片
  • 事后分析:要是正好在集合尾部发生这种错误还可能会导致数组越界最终导致功能不可用
  • 收获: 1.以后遍历删除最好倒序 2.写代码要考虑周全

你可能感兴趣的:(Bugs)