ArrayList: 是一个可变长度的数组,允许null作为值,允许重复的值,线程不安全。
ArrayList底层维护一个Object数组,这个数组叫elementData,再创建ArrayList对象的时候,底层数组没有初始化,长度0。当第一次调用add方法添加元素的时候,数组初始化,长度是10。当元素个数组和数组长度一样的时候,再次调用add方法将出现,扩容操作,扩容的长度是原来数组长度的1.5倍。
ArrayList和LinkedList的区别:ArrayList的遍历的查找效率高,增删效率低。LinkedList的遍历,查找效率低,增删效率高。
Vector: 底层可变长度数组。Vector扩容的时候是按照两倍扩容。创建对象的同时即初始化数组,长度为10。
特点:基本和ArrayList相同,除了Vector是线程安全的以外。效率偏低,不建议使用。