Vector 源码

Vector类和ArrayList都是基于数组实现的,但是Vector是线程安全的,所有大部分方法和ArrayList一样(http://alex-nit.iteye.com/blog/777473),只是多了个synchronized关键字。还有不同的地方是扩容机制不一样,如下方法所示


Java代码 
/**
     * 确定容量的方法,如果capacityIncrement>0则新的容量=老的容量+capacityIncrement,
        否则新的容量=老的容量×2
     */ 
    private void ensureCapacityHelper(int minCapacity) { 
    int oldCapacity = elementData.length; 
    if (minCapacity > oldCapacity) { 
        Object[] oldData = elementData; 
        int newCapacity = (capacityIncrement > 0) ? 
        (oldCapacity + capacityIncrement) : (oldCapacity * 2); 
            if (newCapacity < minCapacity) { 
        newCapacity = minCapacity; 
        } 
            elementData = Arrays.copyOf(elementData, newCapacity); 
    } 
    } 

你可能感兴趣的:(vector)