`

AbstractList中Iterator模式的妙用

阅读更多
AbstractList中为了实现顺序访问AbstractList中的元素,而又隐含AbstractList内部结构使用了Iterator的模式。
实现如下:
首先AbstractList类提供了
public Iterator<E> iterator() {
return new Itr();
}访问方法。
然后Iterator的实现类是用一个内部类实现。
private class Itr implements Iterator<E> {

int cursor = 0;
*
*
.......
}
这样内部类就可以直接访问外部类AbstractList的成员变量,而无需要像其他类实现Iterator模式需要把集合类注入到Iterator实现类中。因为该内部类只是希望内部使用,因此将内部类定义成private的。
在iterator()方法中只需要直接创建内部Iterator接口的实现类即可。

分享到:
评论

相关推荐

    Java源码分析:深入探讨Iterator模式

    本文通过详细解析`java.util.AbstractList`类中迭代器的实现过程,展示了Java中Iterator模式的强大功能。迭代器模式不仅简化了集合的遍历操作,还提供了更好的封装性和灵活性。理解迭代器模式的实现对于深入学习Java...

    模拟java ArrayList Iterator

    在Java中,ArrayList类继承自AbstractList接口,并实现了List接口,提供了丰富的操作方法,如add、remove、get等。 Iterator设计模式是一种行为设计模式,它的主要作用是为集合提供一种顺序访问元素的方式,而无需...

    Map、Set、Iterator迭代详解

    ### Map接口详解 #### 1. Map接口概览 ...通过以上对`Map`、`Set`、`Iterator`以及Java集合框架的详细介绍,我们不仅可以了解到这些接口和类的基本概念和使用方法,还能深入理解它们在实际编程中的应用价值。

    迭代器Iterator.txt

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

    JAVA与设计模式

    Java的`AbstractList`类中的`iterator()`方法就是一个模板方法。 三、设计模式的重要性 设计模式不是银弹,但它们是经验的结晶,可以帮助我们避免重复发明轮子,提高代码质量。在Java开发中,理解和掌握设计模式能...

    深入浅出学习Java设计模式之迭代器模式[参考].pdf

    在Java中,迭代器模式的实现非常常见,尤其是当我们使用集合框架如ArrayList、LinkedList等时。`java.util.Iterator`是迭代器角色的接口,它定义了`hasNext()`和`next()`方法,分别用于检查是否还有更多元素以及获取...

    java专题-迭代器

    迭代器模式是设计模式中的一种,主要用于处理集合或容器中的元素遍历问题。在Java中,迭代器模式被广泛运用,尤其是在处理各种集合如`List`、`Set`、`Map`等时,通过迭代器可以更高效、更安全地遍历集合中的每个元素...

    设计模式笔记设计模式笔记

    - 在Java集合框架中,大量使用了设计模式,例如List接口使用了迭代器模式,AbstractList使用了模板方法模式。 - Spring框架中,依赖注入(DI)和控制反转(IoC)就是基于工厂模式和代理模式实现的。 - 在多线程...

    使用迭代器模式来进行Java的设计模式编程

    在Java中,迭代器模式被广泛使用,尤其是在处理集合类如List、Set和Map时。Java语言已经内置了对迭代器模式的支持,使得开发者可以方便地遍历集合中的所有元素。 迭代器模式通常包含以下几个组件: 1. 抽象容器:...

    JAVA初学教程教你学会JAVA4

    `AbstractList`支持错误快速反应迭代器(Fail-Fast Iterator),这是一种设计模式,用于检测在迭代过程中对列表的结构修改。当迭代器检测到列表在迭代过程中发生了改变时,它会抛出`ConcurrentModificationException...

    java8集合源码分析-DesignPatterns_TypeScript:TypeScript版设计模式

    4. **装饰器模式**:Java 集合框架中,`AbstractList`、`AbstractSet` 和 `AbstractMap` 等抽象类通过扩展具体实现类的功能,如添加同步或不可变性,体现了装饰器模式。 5. **迭代器模式**:所有集合类都实现了 `...

    Java集合框架总结

    - `Iterator iterator()`:返回一个迭代器,用于遍历集合中的元素。 - `boolean containsAll(Collection c)`:判断集合是否包含指定集合中的所有元素。 - `boolean addAll(Collection c)`:将指定集合中的所有...

    JAVA集合框架

    - 使用迭代器遍历集合时,通常遵循以下模式: ```java Iterator迭代器 = 集合对象.iterator(); while(迭代器.hasNext()){ Object元素 = 迭代器.next(); // 对元素进行操作 } ``` 总的来说,Java集合框架为...

    java集合资料整理

    通过使用`Iterator`,可以在遍历集合的同时安全地移除元素,而不会引发并发修改异常。 #### 五、总结 理解Java集合框架的核心在于理解其接口和实现类之间的关系。通过接口,我们能够实现对集合的统一操作,而不用...

    集合框架 图

    `Stack`也已过时,不推荐在新代码中使用。 #### Set接口与实现类 - **Set接口**:继承自`Collection`接口,不允许有重复元素。每个元素都是唯一的。 - **实现类** - `HashSet`:实现了`Set`接口,使用哈希表来...

    Java 基础核心总结 +经典算法大全.rar

    用泛型表示类 用泛型表示接口泛型方法 泛型通配符 反射 Class 类Field 类Method 类ClassLoader 类 枚举 枚举特性 枚举和普通类-样枚举神秘之处 枚举类 I/O File 类 基础 IO 类和相关方法InputStream ...

    java集合(自学整理)

    - **迭代器模式** (`Iterator Pattern`): `Collection` 接口实现了 `Iterable` 接口,可以通过调用 `iterator()` 方法获得一个 `Iterator` 对象,然后利用该对象遍历集合中的元素。此外,从 JDK 1.5 开始,还可以...

    全面接触Java集合框架

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的方式来存储和操作数据。这个框架包括了各种接口和类,它们为开发者提供了多种数据结构,如数组、链表、队列、堆栈、映射等。下面将详细探讨...

    Java集合源码全面分析

    除了这些基本接口,还有一些抽象类作为适配器模式的实现,如`AbstractCollection`、`AbstractList`和`AbstractSet`,它们为实现接口提供了一些默认方法,简化了子类的实现。 3. **Map接口**:不同于Collection,Map...

Global site tag (gtag.js) - Google Analytics