本文介绍的是jdk1.2后的Vector,如有错误,请指教出来,谢谢
Vector是一个比较老旧的集合,在目前的开发比较少用到,不过我们也要了解一下它,它和ArrayList差不多,下面请看分析。
Vector底层也是一个数组的形式,也有自己的扩容机制
它有4个构造方法,但是主要讲解其中3个
步骤:
这个方法主要就是干两件事情:1,尝试扩容,2,添加元素
接下来我们看看ensureCapacityHelper()这个方法:
接下来看看grow()对数组的扩容过程
到目前为止,我们可以知道add(E e)的基本实现了:
>>首先去检查一下数组的容量是否足够
>>>>足够,直接添加元素
>>>>不足够,扩容数组
>>>>>>扩容:如是设定扩容大小即为该数值,否则扩容为原来的1倍
>>>>>>第一次扩容后,如果容量还是小于minCapacity,就将容量扩充为minCapacity
步骤:
以下为add(int index, E element)方法
我们进入insertElementAt()方法看看
步骤:
步骤:
步骤
2.7细点说明
从上面的构造方法还有增删改查的操作其实我们都发现了,都有这么一个synchronized关键字,就是这个关键字为Vector容器提供了一个安全机制,保证了线程安全。
Vector实际上是通过一个数组去保存数据的。当我们构造Vecotr时;使用默认构造函数,默认容量大小是10。
当Vector容量不足以容纳全部元素时,Vector的容量会增加。若容量增加系数 大于0,则将容量的值增加“容量增加系数”;否则,将容量大小增加一倍。