底层基于数组,扩容是基于三目运算符,默认是增加一倍,但是可以指定增量,如果增量不为0就可以按照增量进行数组扩容
Vector是java的第一个集合类,是一个线程安全的集合
Vector()
构造一个空向量,使其内部数据数组的大小
10 及其标准容量增量为零。 |
Vector(Collection<? extends E> c)
构造一个包含指定集合元素的向量,它们在集合的迭代器返回的顺序中返回。
|
Vector(int initialCapacity)
用指定的初始容量构造一个空向量,并以其容量增量等于零。
|
Vector(int initialCapacity, int capacityIncrement)
用指定的初始容量和容量增量构造一个空向量。
|
初始值就是Vector底层数组的初始长度,增量是当容器中的元素多了出来以后要增加底层数组的长度,就是以增量往上加的
private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = elementData.length; int newCapacity = oldCapacity + ((capacityIncrement > 0) ? capacityIncrement : oldCapacity);//这个就是不指定就是翻倍,指定capacityIncrement就是按指定值增长 if (newCapacity - minCapacity < 0) newCapacity = minCapacity; if (newCapacity - MAX_ARRAY_SIZE > 0) newCapacity = hugeCapacity(minCapacity); elementData = Arrays.copyOf(elementData, newCapacity); }
遍历Vector
public static void main(String[] args) { //创建集合对象 Vector<String> v=new Vector<String>(); //添加元素 v.add("1"); v.add("2"); v.add("3"); v.add("4"); //调用方法返回古老的迭代器 Enumeration<String> e=v.elements(); //迭代遍历 while(e.hasMoreElements())//判断是否还有元素 { //获取元素 String s=e.nextElement(); System.out.println(s); } } }