`

java中为什么要使用迭代器

阅读更多
迭代模式是访问集合类的通用方法,只要集合类实现了Iterator接口,就可以用迭代的方式来访问集合类内部的数据,Iterator访问方式把对不同集合类的访问逻辑抽象出来,使得不用暴露集合内部的结构而达到循环遍历集合的效果。
例如,如果没有使用Iterator,遍历一个数组的方法是使用索引:
for(int i=0; i<array.length; i++) { ... get(i) ... } 

   这种方法的缺点就是事先必须知道集合的数据结构,而且当我换了一种集合的话代码不可重用,要修改,比如我用set,就不能通过索引来遍历了。访问代码和集合是紧耦合,无法将访问逻辑从集合类和客户端代码中剥离出来,每一种集合类对应一种访问方式,代码不可重用。
   为解决以上问题,Iterator模式总是用同一种逻辑来遍历集合。
   每一种集合类返回的Iterator具体类型可能不同,Array可能返回ArrayIterator,Set可能返回SetIterator,Tree 可能返回TreeIterator,但是它们都实现了Iterator接口,因此,客户端不关心到底是哪种Iterator,它只需要获得这个 Iterator接口即可,这就是面向对象的威力。

这就是针对抽象编程的原则:对具体类的依赖性最小。
分享到:
评论

相关推荐

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

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

    java 迭代及迭代器的小例子

    通过使用迭代器,我们可以有效地遍历和操作集合中的元素,同时,Java的并发库提供了适应多线程环境的迭代器实现,以满足各种编程需求。这个小例子展示了如何在实际编程中使用迭代器,帮助我们更好地理解和运用这些...

    java的List集合和列表迭代器的使用

    java的List集合和列表迭代器的使用,简单的操作,里面附代码,简单易懂。 使用typora可以打开,其他打开会有格式问题,

    java Iterator迭代器的使用

    要使用`Iterator`,首先需要通过调用集合类的`iterator()`方法来获取迭代器实例。例如,对于ArrayList,代码可能如下所示: ```java ArrayList&lt;String&gt; list = new ArrayList(); // 添加元素... Iterator...

    Java试题-4:迭代器的应用

    Java试题-4:迭代器的应用 查询修改集合可以用集合自身的方法来实现 也可以用迭代器来实现 区别在于用迭代器对集合的修改操作更加安全

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

    在`TestIterator`这个例子中,可能包含了一个或多个测试用例,用于演示如何在Java中使用迭代器模式。通常,这样的测试会创建一个聚合对象,然后通过迭代器遍历其中的元素,展示如何使用`hasNext()`和`next()`方法。...

    迭代器模式.rar之java设计模式

    在Java中,迭代器模式是通过接口和实现类来实现的,让我们深入探讨一下这个模式。 首先,我们要理解迭代器模式的核心概念。在软件工程中,迭代器模式允许我们遍历一个集合对象的所有元素,而无需暴露集合的内部结构...

    设计模式--迭代器模式java例子

    本示例将深入探讨如何在Java中实现和使用迭代器模式。 首先,我们需要理解迭代器模式中的几个关键角色: 1. **聚合类(Aggregate)**:它定义了存储、添加和删除元素的接口,通常是一个集合。在Java中,这些接口...

    基于列表实现的元素迭代器算法(java算法源码)

    //检查迭代器中是否还有剩余的元素 public boolean hasNext() { return (null != nextPosition); } //返回迭代器中的下一元素 public Object getNext() throws ExceptionNoSuchElement { if (!hasNext()) throw...

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

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

    迭代器模式java实现

    以下是一个简单的Java迭代器模式实现的例子: ```java // 定义一个聚合类,例如一个简单的数组列表 class Aggregate { private List&lt;String&gt; elements = new ArrayList(); public void add(String element) { ...

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

    // 通常用于删除当前元素,但在此描述的简单迭代器中未提及 } ``` 在上述示例中,`ArrayIterator`类实现了`Iterator`接口,它与`ArrayList`类协作,提供了遍历数组的能力。`ArrayIterator`维护了一个游标`cursor`...

    7.java迭代器接口.zip

    7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip...

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

    6. **Java集合框架中的迭代器**:除了基础的`Iterator`接口,Java还提供了`ListIterator`,它增加了`hasPrevious()`,`previous()`,`nextIndex()`和`previousIndex()`等方法,专为列表设计。 7. **迭代器模式与...

    java迭代器模式.rar

    迭代这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的迭代接口进行java collection的遍历: Iterator it = list.iterator(); while(it.hasNext()){ ...而这就是关于迭代器模式应用很好的例子。

    Java 23种设计模式20迭代器模式.pdf

    ### Java 23种设计模式之迭代器模式 #### 模式动机与定义 迭代器模式(Iterator Pattern)是设计模式中的一种行为型模式,它主要用于处理聚合对象(如列表、集合等)。此模式的核心目的是提供一种方法来访问聚合...

    【Java1迭代器】Java1迭代器

    【Java1迭代器】Java1迭代器

    java基础 集合-22-迭代器设计模式

    在Java编程语言中,集合框架是处理对象数组的核心部分,而迭代器设计模式则是访问集合元素的主要机制。本文将深入探讨Java中的迭代器模式及其在集合框架中的应用。 迭代器模式是一种行为设计模式,它提供了一种方法...

    java专题-迭代器

    在Java中,迭代器模式被广泛运用,尤其是在处理各种集合如`List`、`Set`、`Map`等时,通过迭代器可以更高效、更安全地遍历集合中的每个元素。本文将详细探讨迭代器模式的原理、结构以及在Java中的具体实现。 #### ...

    迭代器模式代码示例

    在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类,如ArrayList、LinkedList等,使得我们可以遍历集合中的每一个元素。 迭代器模式包含以下主要角色: 1. **迭代器接口(Iterator)**:定义了遍历集合...

Global site tag (gtag.js) - Google Analytics