2016 - 2024

感恩一路有你

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

浏览量:2380 时间:2021-03-11 17:53:35 作者:admin

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

当您是<70时,倒数第二位是66。您没有引发异常,因为以前的列表大小是5。删除66后,列表大小为4。第一次遍历列表大小为5的数组时,指针66位于index=4中。遍历列表大小为4的数组时,指针66位于index=4中newlist.size文件()。

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

1]]2

3

公共布尔hasnext(){

返回光标!=size

}

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

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

1

2

3

4

final void checkForComodification(){

if(modCount!=expectedModCount)

抛出新的Concurrentmodificationexception()

}

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

遍历常用方法时,将使用数组下标。删除其中一个元素时,删除位置的下标对于相应数组中的元素将为空,随后的数据将向前推送,导致最后一个位置的下标为空。当你转到最后一个,它将没有数据,然后它将被删除它的界限。迭代器的原理是只有在有下一项且没有下标时才取值,这将确保数据的一致性

在STL中,remove()只将要删除的元素后的元素移到向量的前端,而不是将其删除。

要实际删除它,请使用erase()。

使用迭代器遍历集合时,删除元素为何不能用集合定义的remove()方法?

Iterator

Iterator是一种设计模式,它是一个对象,它可以遍历和选择序列中的对象,开发人员不需要了解序列的底层结构。

迭代器通常被称为“轻量级”对象,因为它们的创建成本很低。Java中的迭代器函数相对简单,只能向一个方向移动:

(1)iterator()方法要求容器返回迭代器。第一次调用迭代器的next()方法时,它返回序列的第一个元素。

注意:iterator()方法是java.lang.Iterable语言接口,由集合继承。

(2)使用next()获取序列中的下一个元素。

(3)使用hasnext()检查序列中是否还有元素。

(4)使用remove()删除迭代器新返回的元素。

Iterator是Java Iterator最简单的实现。为列表设计的Listiterator有更多的函数。它可以从两个方向遍历列表,还可以从列表中插入和删除元素。

什么是迭代器iterator?

主要有三种方法:使用列表记录要删除的数据,最后删除所有(list);使用for循环遍历,原始写入方法;使用迭代器的remove方法,这也是官方推荐的方法。

如何遍历删除一个list中的特定数据?

您好,我认为这两种方法在集合的迭代中是有区别的:例如,如果您要遍历集合并在满足某个条件时删除元素,如果您使用for循环,您将使用集合附带的remove(),它将更改集合的size()。循环中会发生错误,但是如果将集合放入迭代器,迭代器迭代可以遍历并选择集合中的每个对象,而不是更改集合的结构,如果将集合放入迭代器,可以使用迭代器的remove()来避免问题

遍历删除list中的元素 迭代器删除list元素 iterator用法

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。