ArrayList Vector 扩容

ArrayList 扩容(JDK1.6):

默认大小:10

扩容点规则(什么时候扩容): 整除运算将容量扩展为原来的1.5倍加1, 扩容实现代码newCapacity = oldCapacity + oldCapacity/2 +1;扩容容量为1.5倍加一;

存储方式:数组

扩容方法:Arrays.copyOf(elementData, size);

扩容序列化:ArrayList实现java.io.Serializable的方式。当写入到输出流时,先写入“容量”,再依次写出“每一个元素”;当读出输入流时,先读取“容量”,再依次读取“每一个元素”。

ArrayList 扩容(JDK1.7):

默认大小:10

扩容点规则(什么时候扩容): 采用newCapacity = oldCapacity +(oldCapacity>>1);改为移位运算,同时扩容容量变为1.5倍。

存储方式:数组

扩容方法:Arrays.copyOf(elementData, size);

ArrayList 扩容(JDK1.8):

默认大小:刚刚初始化一个Arraylist其容量是0,当添加一个之后容量就变成了10

扩容点规则(什么时候扩容): 采用newCapacity = oldCapacity +(oldCapacity>>1);改为移位运算,同时扩容容量变为1.5倍。

存储方式:数组

扩容方法:Arrays.copyOf(elementData, size);

Vector 扩容:

默认大小: 10

扩容点规则(什么时候扩容): int newCapacity = (capacityIncrement > 0) ?(oldCapacity + capacityIncrement) : (oldCapacity * 2); 

当扩容因子大于0时,新数组长度为原数组长度+扩容因子,否子新数组长度为原数组长度的2倍。 

存储方式:数组

扩容方法:Arrays.copyOf(elementData, size);

猜你喜欢

转载自blog.csdn.net/varyall/article/details/81277073