首页 > 常见问答

arraylist循环删除元素 删除list集合为什么要用迭代器?

删除list集合为什么要用迭代器?

当您删除其中一个时,对应数组中的元素会清空删除位置的下标,然后将后续的数据逐个向前推,导致最后一个位置的下标为空。当您到达最后一个位置时,如果没有数据,数组将被报告为越界。迭代器的原理是只有在有下一项时才取值,并且没有下标,这样可以保证数据的一致性

当您是<70时,倒数第二位,即66,删除66前列表大小为5,删除66后列表大小为4,所以不会抛出异常。第一次遍历列表大小为5的数组时,指针66位于index=4中。删除列表并遍历大小为4的数组时,cursor=4=newlist.size文件()。

arraylist中的此方法将判断列表已被读取,因此不会引发异常。

1]]2

arraylist循环删除元素 删除list集合为什么要用迭代器?

3

公共布尔hasnext(){

返回光标!=size

}

a<90,第二位变了,列表的大小也变了

看arraylist的源代码,调用这个方法检查列表的大小是否每次都变,但是这个方法发生在hasnext方法之后

1

2

3

4

finalvoidcheckforcomodification(){

if(modcount!=expectedmodcount)

thrownewconcurrentmodificationexception()]}

java中foreach和迭代器在遍历list集合,一些情况下为什么能使用集合自动的删除方法删除元素?

主要有三种方法:使用列表记录要删除的数据,最后删除所有(list);使用forlooptraversal,原始写入方法;使用iterator的remove方法,这也是官方推荐的方法。

arraylist循环删除元素arraylistremove陷阱arraylist遍历删除元素

原文标题:arraylist循环删除元素 删除list集合为什么要用迭代器?,如若转载,请注明出处:https://www.saibowen.com/wenda/22518.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。