-
ArrayList集合的扩容机制
1. ArrayList 中维护了一个 Object 类型的数组 elementData,其数据就存放在里面
transient Object[] elementData;
2. 使用无参构造创建的 ArrayList 对象,elementData 默认大小为0,第一次添加初始化为10,以后每次扩容为之前的1.5倍
3. 使用有参构造创建的 ArrayList 对象,elementData 大小为参数的值,以后每次扩容为之前的1.5倍
-
ArrayList和Vector的区别
1. ArrayList 线程不安全,效率高,扩容逻辑是:
有参构造按1.5倍扩容;
无参构造默认0,第一次扩容为10,以后每次按1.5倍扩容
2. Vector 线程安全,效率较低,扩容逻辑是:
有参构造按2倍扩容;
无参构造默认10,以后每次按2倍扩容