ArrayList
- 默认初始数组长度为10
- 扩容的长度为: 旧数组长度的1.5倍 (Java官方是1.5 IOS是1.6)
- int newCapacity = oldCapacity + (oldCapacity >>1);
- 扩容所在的方法是add();
- 加入泛型后 申请数组变为:
- elements = (T[ ])new Object[capacity];
- 缩容:
- 缩容所在的方法是remove();
- 比如剩余空间占总容量的一半时进行缩容
- 例如,缩容后的容量为总容量的一半或者3/4
链表(LinkedList)

- 定义接口List实现ArrayList 与 LinkedList的所有function , 定义一个抽象类的父类 AbstractList来实现两者公共部分。AbstractList implements List 。
- ELEMENT_NOT_FONT 等常量需要放在List中,而不是ArrayList 。
虚拟头结点

双向链表


