Vector
类实现了一个动态数组。和 ArrayList
很相似,但是两者是不同的:
Vector
是同步访问的。Vector
包含了许多传统的方法,这些方法不属于集合框架。Vector
主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。
Note:
Vector
底层使用的是对象数组 elementData
Vector
是线程同步的,即线程安全。它的操作方法带有 synchronized
Vector
底层结构 | 版本 | 线程安全、效率 | 扩容倍数 | |
---|---|---|---|---|
ArrayList |
可变数组 | Jdk1.2 | 不安全、效率高 | 1.5倍 |
Vector |
可变数组 | Jdk1.0 | 安全、效率不高 | 2倍 |
我们来 debug 下面这段代码。
public static void main(String[] args) {
// 无参构造
Vector vector = new Vector();
for (int i = 1