`

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模式

    下面我们先简单讨论一个根接口Collection,然后分析一个抽象类AbstractList和它的对应Iterator接口,并仔细研究迭代子模式的实现原理。 本文讨论的源代码版本是JDK 1.4.2,因为JDK 1.5在java.util中使用了很多泛型...

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

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

    Java集合类中文介绍

    本文首先对Java集合类框架做了简单说明,之后对主要类和为API做了介绍:Collection、List、Set、AbstractCollection、AbstractList、AbstractSet、Iterator、ListIterator。

    超全Java集合框架讲解.md

    - Iterator Iterable ListIterator - Map 和 Collection 接口 - Map 集合体系详解 - HashMap - LinkedHashMap - TreeMap - WeakHashMap - Hashtable - Collection 集合体系详解 - Set 接口 - AbstractSet...

    Java Collections中的Fail Fast机制

    抽象类、AbstractList 抽象类和具体的ArrayList 的实现纵向研究了Java Collections Framework 中的Fail Fast 机制,通常的编程错误以及这些接口和类之间的关系,以有助于大家对Java Collections Framework 源代码的...

    Java进阶--深入理解ArrayList实现原理

    ArrayList就是动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了动态的增加和减少元素,实现了Collection和List接口,可以灵活的设置数组的大小。要注意的是ArrayList并不是线程安全的,因此一般建议在单...

    JDK 1.5的泛型實現(Generics in JDK 1.5)

    LinkedList&lt;T&gt; 運用實例中,我曾假設 Stroke, Rect, Circle皆繼承自 Shape。如果我們希望這些 classes有足夠的彈性,讓用戶得以在運用這些 classes 時才指定其內部數據(長、寬、半徑等等)的型別,那就得用上...

    Java数据库查询结果的输出

    public class Vector extends AbstractList implements List , Cloneable , Serializable{…} 类JTable:  JTable组件是Swing组件中比较复杂的小件,隶属于javax.swing包,它能以二维表的形式显示数据。类Jtable:...

    ArrayList源码分析

    它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable的方法,我们从它的源码中可以清楚的看到 //默认的初始化容量为10 private static final int DEFAULT_CAPACITY = 10; //用于...

    List集合之ArrayList

    ArrayList集成AbstractList抽象类,实现了List、RandomAccess、Cloneable、java.io.Serializable这四个接口,其中我们可以看到,实现了Cloneable和Serializable接口就代表着ArrayList是支持克隆和序列化的,这里有个...

    java8源码-csn-list:ArrayList、LinkedList、Vector、Stack源码分析

    AbstractList 实现 List接口 ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。不是线程安全的。ArrayList包含了两个重要的对象:elementData(Object[]类型的数组) 和 size ...

    大数据开发成长之路——Java基础(四)

    Java中的集合是用来存放对象的容器 集合可以存放不同类型,不限数量的数据 分为两块:Collection和Map,也称之为集合接口 集合类都存放在java.util包中 Collection Collection分别被List和Set继承 List List被...

    Tess4j+中文识别+使用介绍文档+参考网址="最终几行代码实现图片中的文字识别"

    下载后 是一个Java工程,使用的开发工具为IDEA,Eclips开发者可将src目录下Java 文件进行拷贝即可,lib依赖相应导入,点击已实现功能的Main.java 类直接运行即可实现图片中文字识别 【注】:识别所需的语言包需使用和src...

    Java ArrayList

    ArrayList 继承了 AbstractList ,并实现了 List 接口。 ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下: import java.util.ArrayList; // 引入 ArrayList 类 ArrayList objectName =new ...

    Java系列ArrayList

    ArrayList ArrayList 类是一个可以动态修改...ArrayList 继承了 AbstractList ,并实现了 List 接口。 添加元素 访问元素 修改元素 删除元素 计算大小 迭代数组列表 其他的引用类型 ArrayList 排序 Java ArrayList 方法

    java8源码-data-structure:这个项目是为了学习Java数据结构

    打开ArrayList的源码我们能看到ArrayList实现了List接口,扩展至AbstractList,其本质是一个可变长度的数组。 Java8中ArrayList包含注释一起一共1468行代码,算是一个比较复杂的类,所以这当中一定有值得我们研究的...

    javajdk源码学习-JavaSourceLearn:JDK源码学习

    java jdk源码学习 JavaSourceLearn 版本号 版本 corretto-1.8.0_275 方式 ...AbstractList 1 AbstractMap 1 AbstractSet 1 ArrayList 1 LinkedList 1 HashMap 1 Hashtable 1 HashSet 1 LinkedHashMa

    sql-formatter npm打包后文件

    1、本资源已经对源码NPM工程打包为sql-formatter.min.js 文件可直接引入使用 2、具体说明可见下载后压缩包中的 说明.text 文件 3、相关博客文章 https://blog.csdn.net/guzuoi/article/details/111151290

    MySql转Java实体类

    将一个 .sql文件中的表转换为对应的Java实体类

    WindowManager.addView()实现悬浮窗口播放视频

    安卓使用WindowManager.addView()简单实现悬浮窗口播放视频

Global site tag (gtag.js) - Google Analytics