19.9.2 Vector是什么样的数据结构
答:没有讲述它的原因,是因为目前使用它的频率不高。一般用数组列表代替它,因为它们的使用方法几乎一样,唯独不同的就在线程安全方面。数组列表是非线程安全类,在实现线程编程时,要自己处理安全问题,而Vector则是线程安全类,自动会处理安全问题。
Vector类提供实现可增长数组的功能,随着更多元素加入其中,数组变得更大。在删除一些元素之后,数组变小。Vector有三个构造函数:
public Vector(int initialCapacity, int capacityIncrement)
public Vector(int initialCapacity)
public Vector()
Vector运行时创建一个初始的存储容量initialCapacity,存储容量是以capacityIncrement变量定义的增量增长。初始的存储容量和capacityIncrement可以在Vector的构造函数中定义。第2个构造函数只创建初始存储容量。第3个构造函数既不指定初始的存储容量,也不指定capacityIncrement。Vector类提供的访问方法,支持类似数组的运算,也支持与Vector大小相关的运算。类似数组的运算允许在向量中增加、删除和插入元素。
下面对向量增、删、插的功能进行举例描述。增加向量的代码:
addElement(Object obj)
把组件加到向量尾部,同时大小加1,向量容量比以前大1。
insertElementAt(Object obj, int index)
把组件加到指定索引处,此后的内容向后移动1个单位。
setElementAt(Object obj, int index)
把组件加到指定索引处,此处的内容被代替。
removeElement(Object obj)///把向量中含有本组件内容移走
removeAllElements()///把向量中所有组件移走,向量大小为0