Vector 可实现自动增长的对象数组。
java.util.vector提供了向量类(Vector)以实现类似动态数组的功能。 创建了一个向量类的对象后,可以往其中随意插入不同类的对象,即不需顾及类型也不需预先选定向量的容量,并可以方便地进行查找。对于预先不知或者不愿预先定义数组大小,并且需要频繁地进行查找,插入,删除工作的情况,可以考虑使用向量类。
向量类提供了三种构造方法:
public vector() public vector(int initialcapacity,int capacityIncrement) public vector(int initialcapacity)
使用第一种方法系统会自动对向量进行管理,若使用后两种方法,则系统将根据参数,initialcapacity设定向量对象的容量(即向量对象可存储数据的大小),当真正存放的数据个数超过容量时。系统会扩充向量对象存储容量。
参数capacityincrement给定了每次扩充的扩充值。当capacityincrement为0的时候,则每次扩充一倍,利用这个功能可以优化存储。
在Vector类中提供了各种方法方便用户的使用:
插入功能:
(1)public final synchronized void adddElement(Object obj) 将obj插入向量的尾部。obj可以是任何类型的对象。对同一个向量对象,亦可以在其中插入不同类的对象。但插入的应是对象而不是数值,所以插入数值时要注意将数组转换成相应的对象。 例如:要插入整数1时,不要直接调用v1.addElement(1),正确的方法为:Vector v1 = new Vector(); Integer integer1 = new Integer(1); v1.addElement(integer1);
(2) public final synchronized void setElementAt(Object obj,int index)
将index处的对象设置成obj,原来的对象将被覆盖。(3) public final synchronized void insertElementAt(Object obj,int index)
在index指定的位置插入obj,原来对象以及此后的对象依次往后顺延。删除功能:
(1) public final synchronized void removeElement(Object obj) 从向量中删除obj,若有多个存在,则从向量头开始试,删除找到的第一个与obj相同的向量成员。(2) public final synchronized void removeAllElement();
删除向量所有的对象(3) public fianl synchronized void removeElementAt(int index)
删除index所指的地方的对象查询搜索功能:
(1)public final int indexOf(Object obj) 从向量头开始搜索obj,返回所遇到的第一个obj对应的下标,若不存在此obj,返回-1.(2)public final synchronized int indexOf(Object obj,int index)
从index所表示的下标处开始搜索obj.(3)public final int lastindexOf(Object obj)
从向量尾部开始逆向搜索obj.(4)public final synchornized int lastIndex(Object obj,int index)
从index所表示的下标处由尾至头逆向搜索obj.(5)public final synchornized firstElement()
获取向量对象中的首个obj(6)public final synchornized Object lastElement()
获取向量对象的最后一个obj其他功能:
(1) public final int size(); 此方法用于获取向量元素的个数。它们返回值是向量中实际存在的元素个数,而非向量容量。可以调用方法capacity()来获取容量值。(2) public final synchronized void setSize(int newsize);
此方法用来定义向量的大小,若向量对象现有成员个数已经超过了newsize的值,则超过部分的多余元素会丢失。程序中定义Enumeration类的一个对象Enumeration是java.util中的一个接口类,
(3) public final synchronized Enumeration elements();
此方法将向量对象对应到一个枚举类型。java.util包中的其他类中也都有这类方法,以便于用户获取对应的枚举类型。在Enumeration中封装了有关枚举数据集合的方法。
方法 hasMoreElement() 来判断集合中是否还有其他元素。方法 nextElement() 来获取下一个元素
以下代码就是用hasMoreElement()和 nextElement()遍历Vector
import java.util.Enumeration;import java.util.Iterator;import java.util.List;import java.util.Vector;public class TestVector { public void test01() { Vectorhs = new Vector (); hs.add("aa"); hs.add("bb"); hs.add("aa"); hs.add("cc"); hs.add("aa"); hs.add("dd"); printSet2(hs); } public void printSet(List hs) { Iterator iterator = hs.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } public void printSet2(Vector hs) { Enumeration elements = hs.elements(); while (elements.hasMoreElements()) { System.out.println(elements.nextElement()); } } public static void main(String[] args) { new TestVector().test01(); }}
运行结果:
PS:同时也有一个结论 Vector是有序的,可以重复的。
原作者:https://www.cnblogs.com/zheting/p/7708366.html