推荐学习
为什么线程安全的List推荐使用CopyOnWriteArrayList,而不是Vector?
注:本系列文章中用到的jdk版本均为java8
相比很多同学在刚接触Java集合的时候,线程安全的List用的一定是Vector。但是现在用到的线程安全的List一般都会用CopyOnWriteArrayList,很少有人再去用Vector了,至于为什么,文章中会具体说到。接下来,我们先来简单分析一下Vector的源码。
一、Vector集合源码简析
由于本文的重点不是Vector集合,因此只是简单地分析一下Vector的初始化方法和添加元素的方法。
Vector的底层实现和ArrayList一样,都是由数组实现的。
Vector的主要变量如下:
/**
* 存放元素的数组
*/
protected Object[] elementData;
/**
* 元素个数
*/
protected int elementCount;
/**
* 扩容自增容量大小
*/
protected int capacityIncrement;
1.1 Vector初始化
Vector的初始化提供了三个方法,除了可以指定初始容量的大小,还可以指定扩容容量的大小。构造器分别如下:
无参构造器
public Vector() {