初探Vector

ps:如今Vector用的比較少了,只做爲了解java

1、類的聲明

主要看的是實現了List接口segmentfault

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

2、構造方法

構造一個空Vector,初始大小爲10,其標準容量增量爲零。dom

public Vector() {
    this(10);
}

構造一個具備指定初始容量的空Vector,其容量增量爲零。this

public Vector(int initialCapacity) {
    this(initialCapacity, 0);
}

構造一個具備指定初始容量和容量增量的空Vector。spa

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對象時,就能夠把參數中的內容添加到對象中code

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);
}

3、對比Vector與ArrayList

1.添加

Vector版本
clipboard.png對象

ArrayList版本
詳情:傳送門: https://segmentfault.com/a/11...
clipboard.png接口

幾乎同樣,就是Vector裏面多了個synchronizedip

2.刪除

Vector版本
先計算傳入對象的下標,而後進行刪除,與ArrayList實現基本相同,就是多了synchronized
clipboard.pngci

ArrayList版本
詳情:傳送門: https://segmentfault.com/a/11...
clipboard.png

相關文章
相關標籤/搜索