ArrayList 源码分析
|
ArrayList 是平时常用的数据存储结构,它基于动态数组,支持随机访问,值得一提的是:它是不安全的。造成这种不安全的原因主要是:在在多线程环境下,向 ArrayList 添加或移除时,会产生数组越界等问题。推荐使用 Vector、CopyOnWriteArrayList 代替。
ArrayList 与 Array 区别:
- Array 包含的是基本类型和对象类型,而ArrayList 只能包含对象类型
- Array 的大小的是固定的,所以在定义数组的时候尽量确定需要的数组大小,而ArrayList 的大小是动态变化的,当容量不足时能自动扩容
- ArrayList 可以看作Array的增强版,提供了更多的方法和特性,在查找等操作上更方便
定义
1 | public class ArrayList<E> extends AbstractList<E> |