Iterator迭代器介绍!

简介: Iterator迭代器介绍!

由于集合框架中的集合容器太多,而每个集合容器中保存的数据存储的方式都不一样。于是导致我们取数据的时候方式也完全不相同。


Java针对这些所有集合容器取出数据的方式进行共性的抽取,于是针对所有的集合定义了一个接口,在这个接口中描述了所有集合容器的共性遍历规则。


注意:对于集合取元素,无论是什么数据结构,最终共性的取出方式:


一个一个取,取之前先判断,有,取一个,没有,结束。


这种取出的共性方式:迭代。迭代可以理解为取出或者遍历。


而这个接口它就是Iterator,它定义了集合最基本的遍历方式:


image.png

image.png

image.png

Iterator接口的迭代(取出、遍历)方式:

针对一个集合,需要遍历的时候,应该首先去判断集合中有没有元素(对象),有就取出这个元素,没有就不用再进行遍历了。

image.png

hasNext()函数表示判断容器中还有没有元素,如果有返回true,我们就可以根据这个返回的结果确定到底还要不要遍历这个集合容器

image.png

next()函数表示取出当前遍历到的那个元素。

image.png

void  remove() 表示删除当前迭代器对象指向的集合中的元素。

对于迭代器Iterator中的函数解释和运行原理如下图所示:

image.png

说明:可以把迭代器对象理解成为一个移动的光标,开始的时候,光标会在集合容器的最上面,然后如果使用迭代器对象调用hasNext()函数的时候,光标会指向集合中第一个元素,如果hasNext()函数返回true,则说明有元素可以遍历(迭代),则使用迭代器对象调用next()函数就会将当前光标所指向的元素取出来,如果调用remove()函数,就会删除当前光标所指向的元素。


每执行完一次hasNext()函数,光标都会往下移动,直到移动到集合的最低端,找不到元素为止。移动到最底端代表着此迭代器对象也使用完毕。


如果还想再重新迭代该集合那么需要再根据此集合重新创建一个迭代器对象。


注意:在使用集合对象生成迭代器对象后,那么此时这个迭代器对象已经记录下来此时集合中的结构,在使用迭代器遍历的时候,一定记住不能使用集合的对象来对集合中的元素进行删除或者添加,如果要改动可以使用迭代器对象改动集合,如果要改动集合中的内容可以根据改动后的集合对象再重新生成迭代器对象。


目录
相关文章
|
1月前
Iterator与ListIterator迭代器
Iterator与ListIterator迭代器
|
6月前
每日一道面试题之迭代器 Iterator 是什么?
每日一道面试题之迭代器 Iterator 是什么?
|
2月前
|
C++ 容器
C++:迭代器
C++:迭代器
27 0
|
2月前
|
算法 C++ 容器
c++迭代器介绍
C++中的迭代器是一种抽象的数据访问对象,它允许对容器中的元素进行遍历,而不必暴露底层数据结构的细节。迭代器提供了一种通用的方法来访问容器中的元素,无论容器的类型是什么。C++标准库中的许多容器(如vector、list、map等)都支持迭代器。
39 0
|
3月前
自己实现iterator迭代器
自己实现iterator迭代器
|
4月前
|
Java
Java集合框架:什么是迭代器(Iterator)?
Java集合框架:什么是迭代器(Iterator)?
23 0
|
5月前
|
设计模式 Java Python
迭代器(Iterator)
迭代器(Iterator)是一种设计模式,用于遍历聚合对象的一种方法。迭代器提供了一种方法来访问聚合对象中的元素,而不需要暴露该对象的内部表示。迭代器模式在 Java 和 Python 等编程语言中广泛使用,可以用于处理列表、元组、集合等数据结构。
36 1
|
10月前
|
索引 容器
Iterator与ListIterator有什么区别
Iterator与ListIterator有什么区别
|
JavaScript 前端开发 Java
彻底理解 for of 和 Iterator
本文主要来说下ES6的Iterator,目的在于理解它的概念、作用、以及现有的应用,最后学以致用。 Iterator可以说是ES6内相当重大的一个特性,也是很多其他特性运行的基石。 为什么Iterator地位如此之高呢?
92 1
彻底理解 for of 和 Iterator
|
算法 搜索推荐 C++
C++迭代器 iterator详解
C++迭代器 iterator详解
277 0
C++迭代器 iterator详解