集合ArrayList分析
目录
ArrayList
描述
- 继承AbstractList类,实现List接口
- 实现了RandmoAccess接口,即提供了随机访问功能
- 实现了Cloneable接口,即覆盖了函数clone(),能被克隆。
- 实现java.io.Serializable接口,这意味着ArrayList支持序列化,能通过序列化去传输。
- 基于泛型动态数组(List
)扩容(碰到数组先想到连续的内存空间,故空间效率不高) ArrayList
可以以O(1)的时间复杂度去根据下标访问元素。(时间效率很高)- 线程不安全的,允许元素为null
重要的对象
elementData (Object类型的数组)
size(int 类型)
遍历使用
使用for循环,通过索引随机访问效率最高,其次是foreach循环,最慢是迭代器循环
foreach 最终会被转换成迭代器遍历的形式,所以是不如for循环的
与Collection关系
ArrayList属性
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable { // 序列化id private static final long serialVersionUID = 8683452581122892189L; // 默认初始的容量 private static final int DEFAULT_CAPACITY = 10; // 一个空对象 private static