`
mixer_a
  • 浏览: 369042 次
社区版块
存档分类
最新评论

深度剖析Java数据结构之迭代器(Iterator)

 
阅读更多

一、什么是迭代器

我们知道,JVM是用C/C++编写的。在百度百科中,迭代器是解释是迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上象迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。

二、Java中的迭代器

百度百科中解释的迭代器是C++中的迭代器,但是JVM的编写语言是C/C++,在Java中,我们知道要使用迭代器,就需要继承Iterator接口,Iterator接口中有一个iterator()方法,根据Java基本的知识,我们还应该知道,继承Iterator接口的类需要实现iterator()方法,下面是ArrayList泛型类实现的listIterator()方法,返回一个ListIterator接口的对象。

上面是有参数的listIterator()方法。

上面是无参数的listIterator()方法。

上面是在ArrayList泛型类中定义的一个内部类。其中cursor为一个成员变量,代表的意思为游标的位置。

从ArrayList泛型类中的迭代器的定义,我们可以看出,Java中的迭代器和C++中的迭代器是一样的,即每个迭代器对象代表容器中的确定的地址。正因为如此,我们在使用的时候,一定要注意一些事情。

三、使用迭代器注意事项

在前面的文章(深度剖析Java数据结构之表(一)——Collection接口和Iterator接口)已经提到了,在得到一个迭代器对象之后,如果不是使用迭代器中的方法导致容器结构上的修改(结构上的修改是指添加、删除等操作,修改某一项的值不会修改结构),将会抛出异常。出现这种情况的原因是修改容器结构导致迭代器找不到容器中对象的位置。所以,在使用迭代器的时候,一定要注意得到一个迭代器之后,在使用结束之前,不要对容器结构进行修改,如果要修改,应使用迭代器中的方法修改。
分享到:
评论

相关推荐

    java迭代器模式实现正反向遍历

    在Java编程语言中,迭代器模式(Iterator Pattern)是一种常用的设计模式,用于顺序访问集合对象中的元素,而无需暴露其底层表示。这种模式提供了一种方法来访问一个聚合对象的元素,而无需暴露该对象的内部结构。在...

    迭代器Iterator.txt

    根据提供的文件信息,我们可以深入探讨迭代器(Iterator)这一设计模式在Java中的应用与实现细节。迭代器模式是一种常用的设计模式,它允许我们以一种顺序访问集合对象的方式遍历其元素,而无需暴露该对象的内部表示...

    java体系结构之迭代器模式.rar

    在Java中,`java.util.Iterator`接口是迭代器模式的核心,它提供了`hasNext()`和`next()`两个方法。`hasNext()`用于检查集合中是否还有更多元素,而`next()`则返回集合中的下一个元素。通过这两个方法,我们可以迭代...

    Iterator迭代器讲解

    ### Iterator迭代器详解 #### 一、Iterator简介与概念 在Java编程语言中,`Iterator`接口是一个重要的组件,它提供了遍历集合的基本方法。`Iterator`的主要作用是在不暴露集合内部结构的情况下,顺序访问集合中的...

    Java学习之Iterator(迭代器)的一般用法

    在深入探讨Java中Iterator(迭代器)的一般用法之前,我们先来理解一下迭代器在编程中的核心价值。迭代器是一种设计模式,其主要作用在于遍历集合中的元素,而无需开发者知晓集合的具体实现细节。这使得代码更加灵活、...

    【Java设计模式】(1)迭代器模式Iterator

    迭代器模式(Iterator Pattern)是Java设计模式中的行为模式之一,它提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等,通过...

    java Iterator迭代器的使用

    熟练掌握`Iterator`的使用,能够提高代码的灵活性和可读性,是每个Java开发者必备的技能之一。 8. **图片资源:Java.jpg** 可能这个图片文件是用来辅助理解`Iterator`概念的,比如它可能包含了一个迭代过程的流程...

    设计模式之迭代器模式(Iterator)

    例如,在Java中,`Iterable`接口和`Iterator`接口就是实现迭代器模式的关键。`Iterable`接口定义了获取迭代器的方法`iterator()`,而`Iterator`接口提供了`hasNext()`和`next()`方法,分别用于检查是否还有下一个...

    设计模式(C#)之迭代器模式(Iterator Pattern)

    迭代器模式是软件设计模式中的一种行为模式,它在C#等面向对象编程语言中有着广泛的应用...在C#开发中,利用内置的`IEnumerable`和`IEnumerator`接口可以轻松地实现迭代器模式,为各种聚合数据结构提供流畅的遍历体验。

    数据结构 模板与迭代器

    ### 数据结构中的模板与迭代器 #### 模板基础 在C++中,**模板**是一种强大的工具,它允许程序员编写泛化的代码——代码不是针对一个具体的类型,而是对一组类型进行操作。模板分为**函数模板**和**类模板**。 - ...

    迭代器iterator在opencv中使用

    迭代器iterator可以很方便的遍历所有元素。Mat类支持迭代器的方式对矩阵元素进行遍历。由于使用迭代器就不需要再使用行列数进行操作。

    java设计模式之迭代器模式

    迭代器模式不仅适用于Java集合框架,还可以用于自定义数据结构,如树形结构或图形结构的遍历。在这些情况下,我们需要实现自定义的迭代器来支持遍历操作。 此外,Java还提供了增强型for循环(foreach),它在底层也...

    java 迭代及迭代器的小例子

    总结来说,Java中的迭代和迭代器是处理集合数据结构的核心工具。通过使用迭代器,我们可以有效地遍历和操作集合中的元素,同时,Java的并发库提供了适应多线程环境的迭代器实现,以满足各种编程需求。这个小例子展示...

    Iterator迭代器的用法

    该文档是演示迭代器Iterator的使用方法和源代码,其中包括了Iterator的继承类的讲解和再Iterator中的两种方法

    Java集合框架中迭代器Iterator解析

    Java集合框架中迭代器Iterator解析 Java集合框架中迭代器Iterator是Java集合框架中一种重要的迭代方式,用于遍历集合中的元素。Iterator是一个接口,它提供了基本的迭代规则,包括 hasNext()、next() 和 remove() ...

    自己实现java中Iterator(迭代器功能).docx

    ### 自己实现Java中的Iterator(迭代器功能) #### 背景与动机 在Java编程过程中,迭代器(`Iterator`)是一种常见的用于遍历集合元素的机制。它提供了访问集合元素的方式,而不暴露底层数据结构。对于学习或进阶...

    详解Java中的迭代迭代器Iterator与枚举器Enumeration

    在Java集合框架中,集合提供了多种数据结构存储对象,而迭代器与枚举器提供了访问这些集合中元素的方法。尽管它们的目的相似,但在使用方式和某些特性上存在区别。 迭代器(Iterator)接口包含以下三个方法: 1. ...

    设计模式C++学习之迭代器模式(Iterator)

    迭代器模式是软件设计模式中的行为模式之一,它在C++编程中有着广泛的应用。这个模式提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。通过迭代器,用户可以遍历集合中的所有元素,而无需知道如何...

    计算机后端-Java-Java核心基础-第24章 集合01 09. 迭代器Iterator的执行原理.avi

    计算机后端-Java-Java核心基础-第24章 集合01 09. 迭代器Iterator的执行原理.avi

    65丨迭代器模式(上):相比直接遍历集合数据,使用迭代器有哪些优势?1

    在实际开发中,虽然我们通常直接使用编程语言提供的迭代器类,但理解迭代器模式的工作原理有助于更好地利用这些工具,特别是在处理复杂数据结构或需要自定义遍历行为时。通过将遍历逻辑从集合类中分离,迭代器模式...

Global site tag (gtag.js) - Google Analytics