Vector 的简介
相当于支持支持并发操作的 ArrayList,和 ArrayList 用法基本相同,在 add(E e)等操作时加上了 synchronized 关键字来实现同步,ArrayList 扩容 1.5 倍,Vector 扩容 2 倍
官方文档:Vector 是个同步容器,如果不需要线程安全,建议使用 ArrayList
Vector` is synchronized. If a thread-safe implementation is not needed, it is recommended to use [`ArrayList`](https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html) in place of `Vector`
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);
}
- 如果初始化 Vector 的时候指定了每次扩容的大小(capacityIncrement),扩容后数组大小为当前大小 +capacityIncrement
- 如果没有指定 capacityIncrement,扩容后数组大小为当前大小的两倍
基于 JDK1.8
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于