{ ArrayList }

  • ArrayList 源码分析

    |

    ArrayList 是平时常用的数据存储结构,它基于动态数组,支持随机访问,值得一提的是:它是不安全的。造成这种不安全的原因主要是:在在多线程环境下,向 ArrayList 添加或移除时,会产生数组越界等问题。推荐使用 Vector、CopyOnWriteArrayList 代替。

    ArrayList 与 Array 区别:

    • Array 包含的是基本类型和对象类型,而ArrayList 只能包含对象类型
    • Array 的大小的是固定的,所以在定义数组的时候尽量确定需要的数组大小,而ArrayList 的大小是动态变化的,当容量不足时能自动扩容
    • ArrayList 可以看作Array的增强版,提供了更多的方法和特性,在查找等操作上更方便

    定义

    1
    2
    public class ArrayList<E> extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, java.io.Serializable