java-Vector类源代码与分析.docx
文本预览下载声明
package java.util;
public class VectorE??? extends AbstractListE??? implements ListE, RandomAccess, Cloneable, java.io.Serializable{??? // 保存Vector中数据的数组??? protected Object[] elementData;??? // 实际数据的数量??? protected int elementCount;??? // 容量增长系数??? protected int capacityIncrement;??? // Vector的序列版本号??? private static final long serialVersionUID = -2767605614048989439L;??? // Vector构造函数。默认容量是10。??? public Vector() {??????? this(10);??? }??? // 指定Vector容量大小的构造函数??? public Vector(int initialCapacity) {??????? this(initialCapacity, 0);??? }??? // 指定Vector容量大小和增长系数的构造函数??? public Vector(int initialCapacity, int capacityIncrement) {??????? super();??????? if (initialCapacity 0)????????? throw new IllegalArgumentException(Illegal Capacity: +initialCapacity);??????? // 新建一个数组,数组容量是initialCapacity??????? this.elementData = new Object[initialCapacity];??????? // 设置容量增长系数??????? this.capacityIncrement = capacityIncrement;??? }??? // 指定集合的Vector构造函数。??? public Vector(Collection? extends E c) {??????? // 获取“集合(c)”的数组,并将其赋值给elementData??????? elementData = c.toArray();??????? // 设置数组长度??????? elementCount = elementData.length;??????? // c.toArray might (incorrectly) not return Object[] (see 6260652)??????? if (elementData.getClass() != Object[].class)??????????? elementData = Arrays.copyOf(elementData, elementCount, Object[].class);??? }??? // 将数组Vector的全部元素都拷贝到数组anArray中??? public synchronized void copyInto(Object[] anArray) {??????? System.arraycopy(elementData, 0, anArray, 0, elementCount);??? }??? // 将当前容量值设为 =实际元素个数??? public synchronized void trimToSize() {??????? modCount++;??????? int oldCapacity = elementData.length;??????? if (elementCount oldCapacity) {??????????? elementData = Arrays.copyOf(elementData, elementCount);??????? }??? }??? // 确认“Vector容量”的帮助函数??? private void ensureCapacityHelper(int minCapacity) {??????? int oldCapacity = elementData.length;??????? // 当Vector的容量不足以容纳当前的全部元素,增加容量大小。??????? // 若 容量增
显示全部