对Java程序开发而言,ArrayList 的使用频率是非常高的,尤其在进行 JavaWeb 开发的时候,ArrayList 和 HashMap 这两个类,相信你一定不会陌生,因为天天都在用嘛。

本系列对 ArrayList 做一个解析,同时把Java基础知识个串连进去。一开始我会对如何使用 ArrayList 做一个简要的说明,然后,我们来仿照 ArrayList 封装一个自己的集合框架MyList,通过练习,来一步一步猜想ArrayList 可能的实现方式。

最后,深入到ArrayList 的源码进行解读。

为什么要学习源码?

很简单,一个知道源码的人和一个不知道源码的人,虽然都能使用 ArrayList ,但是,他们在使用的时候,心态是完全不一样的。

只有当你深入了源码,然后你才会对它的一些细节有更充分的认识。这是一本万利的事情。

当然,对于初学者,还是尽量以使用为主,因为源码的话,毕竟有一定的难度。如果一味地追求这些东西,可能会大大降低自己的学习兴趣和热情。

##1、 ArrayList 概述

副本难度:一颗星
经验值:500


首先来看一下文档,

All Implemented Interfaces: Serializable, Cloneable, Iterable

从图中可以看到,ArrayList 实现了Iterable接口,这个接口表示一种迭代的能力。

既然是ArrayList,那么肯定和 List 有关,所以它果然继承了List接口。

接口