java list遍历删除元素 删除list集合为什么要用迭代器?
删除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
final void Checkforcomodification(){
if(modcount!=expectedmodcount)
throw new concurrent modificationexception()]}
java中foreach和迭代器在遍历List集合,一些情况下为什么能使用集合自动的删除方法删除元素?
要从列表中删除指定的元素,可以使用remove方法:ArrayList al=newarraylist()al.add公司(“a”)al.add公司(“b”)//al.add公司(“b”)//al.add公司(“c”)//al.add公司(“d”)表示(inti=0i<al.尺寸()i){如果(艾尔盖特(i) ==“b”{al.移除(i) 在代码中,删除元素后,需要将下标减去1。这是因为删除每个元素后,ArrayList将依次将以下元素上移一个位置(即copy)。因此,下一个要访问的下标仍然是当前下标,因此必须减去一才能遍历所有元素。
java list遍历删除元素 for循环删除list元素 map遍历删除元素
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。