删除list集合为什么要用迭代器?
当您删除其中一个时,对应数组中的元素会清空删除位置的下标,然后将后续的数据逐个向前推,导致最后一个位置的下标为空。当您到达最后一个位置时,如果没有数据,数组将被报告为越界。迭代器的原理是只有在有下一项时才取值,并且没有下标,这样可以保证数据的一致性
当您是<70时,倒数第二位,即66,删除66前列表大小为5,删除66后列表大小为4,所以不会抛出异常。第一次遍历列表大小为5的数组时,指针66位于index=4中。删除列表并遍历大小为4的数组时,cursor=4=newlist.size文件()。
arraylist中的此方法将判断列表已被读取,因此不会引发异常。
1]]2
3
公共布尔hasnext(){
返回光标!=size
}
a<90,第二位变了,列表的大小也变了
看arraylist的源代码,调用这个方法检查列表的大小是否每次都变,但是这个方法发生在hasnext方法之后
1
2
3
4
finalvoidcheckforcomodification(){
if(modcount!=expectedmodcount)
抛出新的并发修改异常()
java中foreach和迭代器在遍历list集合,一些情况下为什么能使用集合自动的删除方法删除元素?
迭代:
1。调用你自己的方法,或者递归。我不需要说太多。
2.另一种解释是:许多程序都有迭代器。这是一个用于“遍历”数组的工具对象。通常遍历数组是使用从0到最后的循环变量,或者使用链表遍历刻度的内容。迭代器可以遍历数组的所有成员,而不必关注数组的具体实现。遍历:访问数据结构中每个成员的操作就是遍历。就像遍历一个列表。最常见的问题是遍历树。常用的遍历树的方法有:一阶/中阶/二阶,或按另一纬度、宽度遍历和深度遍历。相关的具体算法可以找到其他信息。
数组遍历和迭代器遍历的区别?
迭代器迭代器=列表迭代器()objectfirst=nullobjectlast=nullintcount=0,而(迭代器.hasnext()){countobjecttemp=迭代器.next()if(count==1){first=temp}else{if(!迭代器.hasnext()){//lastelementlast=temp}}之后,我们处理first和last,但是您没有指定要处理的内容,所以编写起来不容易
让我们来讨论迭代器。对于string、list、dict、tuple和其他容器对象,使用循环遍历非常方便。在后台,for语句调用容器对象上的iter()函数。iter()是python的内置函数。iter()返回定义next()方法的迭代器对象。它逐个访问容器中的元素。next()也是python的内置函数。当没有后续元素时,next()抛出stopiteration异常以通知for语句循环结束。生成器是创建迭代器的一个简单而强大的工具。它们像常规函数一样编写,只在需要返回数据时使用yield语句。每次调用next()时,生成器都会返回它离开的位置(它会记住语句的最后一次执行和所有数据值)。
原文标题:list迭代器遍历删除 删除list集合为什么要用迭代器?,如若转载,请注明出处:https://www.saibowen.com/news/23808.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。