日期:2014-05-20  浏览次数:20618 次

vector容量增大时是否需要转移原数据
使用c3p0连接池 实际应用中 仍然有一些用户在更新数据时需要长时间的等待

java的vector实现原理是什么 当vector的容量用完此时再添加一个对象 引起容量的再分配 此时如何分配的?原有数据是否会因为容量变化而要转移?

请高手指点一二


------解决方案--------------------
protected Object[] elementData;//里面就是一个object[]数组
Java code
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);
    }
    }