版权声明: https://blog.csdn.net/qq_21852449/article/details/85632208
- 数据结构
Vector是线程安全的,一般在多线程并发编程中使用,如果不需要线程安全,推荐使用ArrayList代替,提高效率。
- 继承&实现
可序列化、随机访问、可克隆、迭代器
- 属性
//存储元素的数组
protected Object[] elementData;
//实际的元素个数
protected int elementCount;
//扩容容量
protected int capacityIncrement;
- 构造方法
//构造一个指定容量为capacity、自增容量为capacityIncrement的空vector。
public Vector(int initialCapacity, int capacityIncrement) {...}
//构造一个指定容量为initialCapacity、自增容量为0的空vector
public Vector(int var1) {...}
//默认为10
public Vector() {...}
//使用指定的Collection构造vector
public Vector(Collection<? extends E> c) {...}
- 核心方法
//将Vector中所有的元素拷贝到var1数组中
public synchronized void copyInto(Object[] var1) {
//将底层数组的容量调整到实际大小,用来释放空间
public synchronized void trimToSize() {...}
//扩容 当前容量增加一倍
private void grow(int var1) {...}
//进行大容量分配
private static int hugeCapacity(int var0) {...}
- 总结
1.Vector底层是有序数组
2.随机访问效率高,增删效率低。通过索引可以很快的查找到对应元素,而增删元素许多元素的位置都要改变。
3.线程安全。很多方法都是synchronized的。
4.最好在插入大量元素前增加 vector 容量,那样可以减少重新申请内存的次数