首页 > 代码库 > 集合类的遍历删除问题
集合类的遍历删除问题
1:今天使用ArrayList集合,在使用遍历的时候出现了很多问题。
我发现使用遍历ArrayList集合的时候,删除添加元素报错
查了资料,看了源码如下:
发现这个arraylist的遍历是不一样的,每一个集合类都有自己实现的遍历接口,e而list的ArrayList接口实现的这个遍历接口内部类,它是先判断
hasnext是否可以成功,可以继续,不可以退出,这个modCount和expectedModCount,是用来计算Arraylist集合被修改次数的,一个代表遍历的,
一个代表集合本身,如果直接在遍历中修改集合,不通过遍历器本身,那么这2个值就会不一样,就会抛出那个错误了,但是这个有个bug,那就是删除倒数第二个
值,先进行hasnext判断,由于减少了一个size正好和游标一样,不遍历最后一个元素直接退出了,
其余的一些集合比如hashset这个集合的遍历实现却不是像这个一样,没有什么问题,没有bug.
集合类的遍历删除问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。