ArrayList与Vector区别表 | |
ArrayList | Vector |
一、实现原理:采用动态对象数组实现,默认构造方法建立了一个空数组 | 一、实现原理:采用动态数组对象实现,默认构造方法建立了一个大小为10的对象数组 |
二、第一次添加元素,扩展容量为10,以后的扩充算法:原来数组大小+原来数组的一半 | 二、扩充的算法:当增量为0时,扩充为原来大小的2倍,当增量大于0时,扩充为原来大小+增量 |
三、不适合进行删除或插入操做 | 三、不适合进行删除或插入操做 |
四、为了防止数组动态扩充次数过多,建议建立ArrayList时,给定初始容量。 | 四、为了防止数组动态扩充次数过多,建议建立Vector时,给定初始容量 |
五、多线程中使用不安全,适合在单线程访问时使用,效率较高。 | 五、线程安全,适合在多线程访问时使用,效率较低 |
六、setSize若是设置的长度比当前元素个数要大的话,后面的元素将被置为空值 |
一、ArrayList设置默认大小算法
ArrayList<String> arrayList = new ArrayList(20);
二、Vector设置默认大小数组
Vector<String> vector = new Vector(20);
三、Vector设置增量大小(第一个参数是初始容量,第二个参数是增量)安全
Vector<String> vector = new Vector(20,1);