汇商网 科技与电子产品领域信息大全

arraylist遍历删除元素

ArrayList一边一边删除元素,可能会产生bug!

可以看到,这里遍历用的是ArrayList实现的迭代器Iterator的hasNext()、next()方法,但是删除用的却是ArrayList的remove(Object o)方法。这样迭代器无法得知ArrayList中元素的变化,比如ArrayList中已经删了一个元素,后面的元素都向前移动一个位置,原本Iterator位置上的元素被删除了并且被后面的元素替代,而Iterator不知道,下一次迭代的时候就会以为这个元素已经被遍历过了而直接跳过。

版权说明:文章均为账号作者发布,不代表本网站观点与立场,如有侵权请联系我们删除