List接口方法
定义说明publicclassVectorextendsAbstractListimplementsList,RandomAccess,Cloneable,SerializableVector底层也是一个对象数组,protectedObject[]elementData;Vector是线程同步的,即线程安全,Vector类的操作方法带有synchronized在开发中,需要线程同步安全时,考虑使用Vector。
Collection接口和常用方法
List实现类–Vector
源码
public class Demo10_Vector { public static void main(String[] args) { //无参构造器 Vector vector = new Vector(); Vector vector1 = new Vector(10); //1. new Vector()底层 /* 无参构造: public Vector() { this(10); } 有参构造: public Vector(int initialCapacity) { this(initialCapacity, 0); } */ for (int i = 0; i < 10; i++) { vector.add(i); } //2. vector.add() /* 2.1 add方法添加数据到vector集合 public synchronized boolean add(E e) { modCount++; ensureCapacityHelper(elementCount + 1); elementData[elementCount++] = e; return true; } 2.2 确定是否需要扩容,判断条件: if (minCapacity - elementData.length > 0) private void ensureCapacityHelper(int minCapacity) { // overflow-conscious code if (minCapacity - elementData.length > 0) grow(minCapacity); } */ vector.add(100); //3.需要扩容的vector 两倍扩容 // capacityIncrement:指定扩容大小,默认为0 //扩容算法:int newCapacity = oldCapacity + ((capacityIncrement > 0) ? capacityIncrement : oldCapacity); /* private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = elementData.length; int newCapacity = oldCapacity + ((capacityIncrement > 0) ? capacityIncrement : oldCapacity); if (newCapacity - minCapacity < 0) newCapacity = minCapacity; if (newCapacity - MAX_ARRAY_SIZE > 0) newCapacity = hugeCapacity(minCapacity); elementData = Arrays.copyOf(elementData, newCapacity); } */ } }
双列集合
