Skip to content

Latest commit

 

History

History
26 lines (20 loc) · 682 Bytes

list-vector.md

File metadata and controls

26 lines (20 loc) · 682 Bytes

Vector

数组容量自增

private void grow(int minCapacity) {
    // overflow-conscious code
    int oldCapacity = elementData.length;
    // 默认容量翻倍
    int newCapacity = oldCapacity + ((capacityIncrement > 0) ?
                                        capacityIncrement : oldCapacity);
    if (newCapacity - minCapacity < 0)
        newCapacity = minCapacity;
    if (newCapacity - MAX_ARRAY_SIZE > 0)
        newCapacity = hugeCapacity(minCapacity);
    elementData = Arrays.copyOf(elementData, newCapacity);
}

ArrayList 的区别是默认增长策略直接翻倍,且是同步的

最后

fast-fail。线程安全。

没啥好说的。