在项目中因为须要,可能会动态的对一个List进行操做,这里说明ArrayList,他的底层是数组的实现,若是你用LinkedList就不会出现这样的问题,由于LinkedList底层是链表的实现。数组
从上图能够看出在for循环当循环到i=2时,咱们将map2remove掉,会发现当紧接着往下走的时候i=3,那么map3这个数据就没有遍历到。会出现一个隐藏的bug,若是平时不注意,在实际开发中,当出现这种问题,还真很差找。spa
在remove后,list会依次往上移,此时i却还在递增。因此致使往上移的map没有找到。解决办法本身思考,呵呵。blog