Jdk源码学习之:ArrayList
1. ArrayList简介 首先看看ArrayList与Collection的关系: ArrayList的继承关系如下: java.lang.Object ↳ java.util.AbstractCollection ArrayList继承了AbstractList,实现了List。它是一个数组队列,相当于动态数组。提供了相关的添加、删除、修改和遍历等功能。 ArrayList实现了RandomAccess接口,即提供了随机访问功能。RandomAccess是java中用来被List实现,为List提供快速访问功能的。在ArrayList中,我们即可以通过元素的序号来快速获取元素对象,这就是快速随机访问。下文会比较List的“快速随机访问”和使用“Iterator迭代器访问”的效率。 ArrayList实现了Cloneable接口,即覆盖了函数clone,能被克隆。 ArrayList实现了java.io.Serializable接口,这意味着ArrayList支持序列化,能通过序列化去传输。 和Vector不同,ArrayList中的操作是非线程安全的。所以建议在单线程中使用ArrayList,在多线程中选择Vector或者CopyOnWriteArrayList。 我们先总览下ArrayList的构造函数和API: /******************