Java Vector的用法详解

Vector 是可实现自动增长的对象数组。 java.util.vector提供了向量类(vector)以实现类似动态数组的功能。在Java语言中没有指针的概念,但若正确灵活地使用指针又确实可以大大提高程序的质量。比如在c、c++中所谓的“动态数组”一般都由指针来实现。为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一。事实上,灵活使用数组也可以完成向量类的功能,但向量类中提供大量的方法大大方便了用户的使用。
创建了一个向量类的对象后,可以往其中随意插入不同类的对象,即不需顾及类型也不需预先选定向量的容量,并可以方便地进行查找。对于预先不知或者不愿预先定义数组大小,并且需要频繁地进行查找,插入,删除工作的情况。可以考虑使用向量类。

向量类提供了三种构造方法:

public vector()

public vector(int initialcapacity)

public vector(int initialcapacity,int capacityIncrement)

使用第一种方法系统会自动对向量进行管理,若使用后两种方法。则系统将根据参数,initialcapacity设定向量对象的容量(即向量对象可存储数据的大小),当真正存放的数据个数超过容量时。系统会扩充向量对象存储容量。

参数capacityincrement给定了每次扩充的扩充值。当capacityincrement为0的时候,则没次扩充一倍,利用这个功能可以优化存储。在Vector类中提供了各种方法方便用户的使用:

一、插入功能

1、将obj插入向量的尾部。obj可以是任何类型的对象。对同一个向量对象,亦可以在其中插入不同类的对象。但插入的应是对象而不是数值,所以插入数值时要注意将数组转换成相应的对象:

public final synchronized void adddElement(Object obj)

例如:要插入整数1时,不要直接调用v1.addElement(1),正确的方法为:

Vector v1 = new Vector();

Integer integer1 = new Integer(1);

v1.addElement(integer1);

2、将index处的对象设置成obj,原来的对象将被覆盖:

public final synchronized void setElementAt(Object obj,int index)

3、在index指定的位置插入obj,原来对象以及此后的对象依次往后顺延:

public final synchronized void insertElementAt(Object obj,int index)

二、删除功能

1、从向量中删除obj,若有多个存在,则从向量头开始试,删除找到的第一个与obj相同的向量成员:

public final synchronized void removeElement(Object obj)

2、删除向量所有的对象:

public final synchronized void removeAllElement()

3、删除index所指的地方的对象:

public fianl synchronized void removeElementAt(int index)

三、查询搜索功能

1、从向量头开始搜索obj,返回所遇到的第一个obj对应的下标,若不存在此obj,返回-1:

public final int indexOf(Object obj)

2、从index所表示的下标处开始搜索obj.:

public final synchronized int indexOf(Object obj,int index)

3、从向量尾部开始逆向搜索obj:

public final int lastindexOf(Object obj)

4、从index所表示的下标处由尾至头逆向搜索obj:

public final synchornized int lastIndex(Object obj,int index)

5、获取向量对象中的首个obj:

public final synchornized firstElement()

6、获取向量对象的最后一个obj:

public final synchornized Object lastElement()

 

发表回复

后才能评论