ArrayList扩容:new ArrayList()以后,size为0,第一次add后size为10,当数组满后,以当前数组容量的1.5倍进行扩容。若采用new ArrayList(int a)这种方式进行创建,在new以后size为a值。jdk8中,每一次add()操作都会去判断临时数组是否为第一次创建,比较冗余。在jdk11后,每次add操作才去判断这个问题。
Vector扩容:Vector有三个构造方法:
public Vector(int initialCapacity, int capacityIncrement)
public Vector(int initialCapacity)
public Vector()
若以第一种方式创建Vector对象,在一开始创建时数组的size为initialCapacity值,扩容机制为当前数组容量 + capacityIncrement 。
若以第二种方式创建Vector对象,在一开始创建时数组的size为initialCapacity值,扩容机制为当前数组容量的2倍。
若以无参构造器创建Vector对象,在一开始创建时数组的size为10(默认),扩容机制为当前数组容量的2倍。