ps:现在Vector用的比较少了,只作为了解

一、类的声明

主要看的是实现了List接口

public class Vector<E>
    extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, java.io.Serializable{}

二、构造方法

构造一个空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);
    this.elementData = new Object[initialCapacity];
    this.capacityIncrement = capacityIncrement;
}

同理List的构造方法,参数为Collection或其子类,这样在创建Vector对象时,就可以把参数中的内容添加到对象中

public Vector(Collection<? extends E> c) {
    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与ArrayList

1.添加

Vector版本
clipboard.png

ArrayList版本
详情:传送门: https://segmentfault.com/a/11...
clipboard.png

几乎一样,就是Vector里面多了个synchronized

2.删除

Vector版本
先计算传入对象的下标,然后进行删除,与ArrayList实现基本相同,就是多了synchronized
clipboard.png

ArrayList版本
详情:传送门: https://segmentfault.com/a/11...
clipboard.png


发给官兵
47 声望23 粉丝

态度决定行为,行为决定习惯,习惯决定性格,性格决定命运