- 浏览: 216731 次
- 性别:
- 来自: 北京
文章分类
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接口的实现类即可。
实现如下:
首先AbstractList类提供了
public Iterator<E> iterator() {
return new Itr();
}访问方法。
然后Iterator的实现类是用一个内部类实现。
private class Itr implements Iterator<E> {
int cursor = 0;
*
*
.......
}
这样内部类就可以直接访问外部类AbstractList的成员变量,而无需要像其他类实现Iterator模式需要把集合类注入到Iterator实现类中。因为该内部类只是希望内部使用,因此将内部类定义成private的。
在iterator()方法中只需要直接创建内部Iterator接口的实现类即可。
发表评论
-
多种单例模式的分析
2012-03-28 18:06 0blog.csdn.net/derpvailzhangfan/ ... -
JDK中的设计模式
2012-03-14 22:56 01.Abstract Factory •java.util.C ... -
简单工厂模式使用心得(使用场景)
2012-02-23 18:24 11531在实际项目中,简单工厂模式是我们使用的最多的设计模式之一,简单 ... -
适合使用命令模式的情景
2012-01-13 11:31 919情景1.当借个类都拥有 ... -
Iterator模式
2012-01-13 10:57 897我个人常叫它游标模式,该模式的主要目的就是,顺序访问集合中的各 ... -
使用工厂设计模式的场景
2012-01-12 15:43 2795创建类对象虽然可以使用new(底层也是通过反射创建对象的),但 ... -
JDK中使用的设计模式
2012-01-13 10:04 14431.抽象工厂模式 实 ... -
JDK中使用的设计模式代码实例
2012-01-05 17:38 0http://stackoverflow.com/questi ... -
享元模式
2011-12-23 10:22 1041通常情况下,我们会需 ... -
策略模式
2011-12-22 17:07 891所谓策略模式就是定义了多种算法,而让不同算法之间的切换不会影响 ... -
合成设计模式
2011-12-22 16:28 991如果要将对象组织到树中,使用树来表示对象之间的关系,请考虑使用 ... -
责任链模式
2011-12-20 18:35 844此文转正于http://wenku.baidu.com/vie ... -
桥梁设计模式
2011-12-19 18:19 845如果有很多对象要处理,而又有很多操作要做。这时可以考虑使用桥梁 ... -
多线程设计模式(Thread-Specific storage)
2011-12-12 15:29 5857引用自http://www.riabook.cn/doc/de ... -
代理模式
2011-11-30 15:26 940代理模式实际上是对对象的一种代理,以控制对象的访问。 有些情况 ... -
观察者模式
2011-11-16 14:48 1425声明转载的,简单易懂,呵呵 观察者模式的构造 l 抽 ... -
命令模式
2011-11-16 14:11 1258今天想学学命令模式,看见了一个文章讲的就是命令模式,感觉实例比 ... -
建造模式
2011-11-14 12:03 926建造模式是将负责对象 ... -
设计模式之适配器模式
2011-11-09 18:24 973适配器模式:主要是为了解决,老的对象在新的环境中不兼容的现象。 ... -
设计模式之模版方法
2011-11-09 16:31 825模版方法是一种非常简单的设计模式:简单的理解就是将关键的业务方 ...
相关推荐
本文通过详细解析`java.util.AbstractList`类中迭代器的实现过程,展示了Java中Iterator模式的强大功能。迭代器模式不仅简化了集合的遍历操作,还提供了更好的封装性和灵活性。理解迭代器模式的实现对于深入学习Java...
在Java中,ArrayList类继承自AbstractList接口,并实现了List接口,提供了丰富的操作方法,如add、remove、get等。 Iterator设计模式是一种行为设计模式,它的主要作用是为集合提供一种顺序访问元素的方式,而无需...
### Map接口详解 #### 1. Map接口概览 ...通过以上对`Map`、`Set`、`Iterator`以及Java集合框架的详细介绍,我们不仅可以了解到这些接口和类的基本概念和使用方法,还能深入理解它们在实际编程中的应用价值。
根据提供的文件信息,我们可以深入探讨迭代器(Iterator)这一设计模式在Java中的应用与实现细节。迭代器模式是一种常用的设计模式,它允许我们以一种顺序访问集合对象的方式遍历其元素,而无需暴露该对象的内部表示...
Java的`AbstractList`类中的`iterator()`方法就是一个模板方法。 三、设计模式的重要性 设计模式不是银弹,但它们是经验的结晶,可以帮助我们避免重复发明轮子,提高代码质量。在Java开发中,理解和掌握设计模式能...
在Java中,迭代器模式的实现非常常见,尤其是当我们使用集合框架如ArrayList、LinkedList等时。`java.util.Iterator`是迭代器角色的接口,它定义了`hasNext()`和`next()`方法,分别用于检查是否还有更多元素以及获取...
迭代器模式是设计模式中的一种,主要用于处理集合或容器中的元素遍历问题。在Java中,迭代器模式被广泛运用,尤其是在处理各种集合如`List`、`Set`、`Map`等时,通过迭代器可以更高效、更安全地遍历集合中的每个元素...
- 在Java集合框架中,大量使用了设计模式,例如List接口使用了迭代器模式,AbstractList使用了模板方法模式。 - Spring框架中,依赖注入(DI)和控制反转(IoC)就是基于工厂模式和代理模式实现的。 - 在多线程...
在Java中,迭代器模式被广泛使用,尤其是在处理集合类如List、Set和Map时。Java语言已经内置了对迭代器模式的支持,使得开发者可以方便地遍历集合中的所有元素。 迭代器模式通常包含以下几个组件: 1. 抽象容器:...
`AbstractList`支持错误快速反应迭代器(Fail-Fast Iterator),这是一种设计模式,用于检测在迭代过程中对列表的结构修改。当迭代器检测到列表在迭代过程中发生了改变时,它会抛出`ConcurrentModificationException...
4. **装饰器模式**:Java 集合框架中,`AbstractList`、`AbstractSet` 和 `AbstractMap` 等抽象类通过扩展具体实现类的功能,如添加同步或不可变性,体现了装饰器模式。 5. **迭代器模式**:所有集合类都实现了 `...
- `Iterator iterator()`:返回一个迭代器,用于遍历集合中的元素。 - `boolean containsAll(Collection c)`:判断集合是否包含指定集合中的所有元素。 - `boolean addAll(Collection c)`:将指定集合中的所有...
- 使用迭代器遍历集合时,通常遵循以下模式: ```java Iterator迭代器 = 集合对象.iterator(); while(迭代器.hasNext()){ Object元素 = 迭代器.next(); // 对元素进行操作 } ``` 总的来说,Java集合框架为...
通过使用`Iterator`,可以在遍历集合的同时安全地移除元素,而不会引发并发修改异常。 #### 五、总结 理解Java集合框架的核心在于理解其接口和实现类之间的关系。通过接口,我们能够实现对集合的统一操作,而不用...
`Stack`也已过时,不推荐在新代码中使用。 #### Set接口与实现类 - **Set接口**:继承自`Collection`接口,不允许有重复元素。每个元素都是唯一的。 - **实现类** - `HashSet`:实现了`Set`接口,使用哈希表来...
用泛型表示类 用泛型表示接口泛型方法 泛型通配符 反射 Class 类Field 类Method 类ClassLoader 类 枚举 枚举特性 枚举和普通类-样枚举神秘之处 枚举类 I/O File 类 基础 IO 类和相关方法InputStream ...
- **迭代器模式** (`Iterator Pattern`): `Collection` 接口实现了 `Iterable` 接口,可以通过调用 `iterator()` 方法获得一个 `Iterator` 对象,然后利用该对象遍历集合中的元素。此外,从 JDK 1.5 开始,还可以...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的方式来存储和操作数据。这个框架包括了各种接口和类,它们为开发者提供了多种数据结构,如数组、链表、队列、堆栈、映射等。下面将详细探讨...
除了这些基本接口,还有一些抽象类作为适配器模式的实现,如`AbstractCollection`、`AbstractList`和`AbstractSet`,它们为实现接口提供了一些默认方法,简化了子类的实现。 3. **Map接口**:不同于Collection,Map...