2016 - 2024

感恩一路有你

java 在java中集合中迭代是怎么一回事儿?为什么要进行集合的迭代?

浏览量:2415 时间:2021-04-11 05:38:04 作者:admin

在java中集合中迭代是怎么一回事儿?为什么要进行集合的迭代?

事实上,严格地说,迭代是一种设计模式。迭代的目的是遍历某一类型数据集的内容,而不知道该类型数据的数据结构。

实现思想是定义一个迭代器接口,它至少声明两个方法:hasnext()和next()。通过hasnext()判断是否有遍历元素,并通过next()返回遍历元素。对于具体的实现,我们可以根据不同的需求创建不同的实现类。

换句话说,迭代没有编程语言属性,但几乎所有编程语言都支持迭代。

在Java中,无需迭代即可遍历集合。当然,无需迭代的遍历仅限于list接口的实现类。因为列表接口指定了可以通过集合索引获得相应的值,所以无论列表是通过数组实现还是通过链表实现。

但是,Java中的集合不仅是列表,而且是集合。这种非列表集合不能通过索引获得指定的元素,因此使用迭代方法。

除了list和set之外,Java还有一个双列集合,也称为键值对集合。但是,这种集合遍历不能直接迭代。相反,我们使用折衷方法,要么先获取键值集,要么通过遍历键值遍历映射,要么获取键值集地图输入横穿。

总之,迭代法不属于任何编程语言,它只是一种设计思想,但大多数编程语言都会实现它,包括Java。

java循环中不改变循环变量是规范吗?

您好,我不知道您的意思是foreach循环变量的名称不能更改还是for循环中集合中的元素不能更改。

如果它是第一个,我认为它应该被视为一个语言规范,特别是在foreach循环中。实际上,变量名通常是不变的,因为我们不会对变量名做太多处理。它实际上是中间的一个临时变量,类似于我们有一个数组,数组的每个元素在参与逻辑处理时都会先得到,当涉及到这个元素时,比如array[i],我们可以直接用它来处理业务逻辑。但是,由于在foreach循环中不能以这种方式获得临时变量,因此会给出一个临时变量,并且每个循环的变量名是相同的。

如果是第二个,我认为它肯定不是一个规范。在很多业务中,我们会修改相应的变量,包括更新或删除。当然,我们在处理这些业务时需要使用迭代器,但是循环变量肯定可以修改。

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()

}

java java迭代器是什么 java迭代循环

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