文档详情

java-Vector类源代码与分析.docx

发布:2018-12-24约1.35万字共10页下载文档
文本预览下载声明
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的容量不足以容纳当前的全部元素,增加容量大小。 ??????? // 若 容量增
显示全部
相似文档