List集合实现——Vector
一、JCF
java集合框架:JCF,包括四大部分:
- List集合
- Set集合
- Queue集合
- Map集合
随机访问:
支持随机访问的List集合可以直接查询任意位置的数据,查询任何一个位置上的元素,时间复杂度为O(1)
二、Vector的特点
- 支持随机访问
- 大小可变(支持扩容)
- 线程安全
三、Vector的结构
主要包括三个部分
elementData
一个Object数组,负责存储集合中所有的对象
elementCount
集合中对象的数量 ,int类型
capacityIncrement
每次扩容的大小,即 新数组大小 - 旧数组大小
四、Vector的扩容操作
- Vector的初始化 :默认容量设为10
- 扩容增量值: 默认为0,数组大小扩容每次变为原来的2倍
- 扩容时机:向集合中add()对象,超出原来容量,进行扩容。即elementCount大于等于elementData数组容量
- 重设集合容量: 调用者明确重新确认Vector集合的容量,则容量可能变大,也可能变小
- 如何扩容:创建一个新的容量的数组,elementDate数组的引用指向这个新数组。在新数组中按旧数组的位置放置旧元素,新元素在后面位置索引+1.
五、Vector已经不推荐使用