java vector编程_Java语言程序设计(二十七)Vector类的具体使用方法

与大多数程序设计语言一样,Java中的数组只能保存固定数目的元素,且必须把所有需要的内存单元一次性申请出来,而不能先创建数组再追加数组元素数量,为了解决这个问题,Java引入了向量类(Vector)

向量是Java.util类包提供的一个非常重要的工具类,它对应于类似数组的顺序存储的数据结构,但是具有比数组更强大的功能,它允许不同类型的元素共存于一个变长数组中,因此可以看作是把不同类型的数据按照动态数组进行处理。每个Vector类的对象可以表达一个完整的数据序列。它不但可以保存顺序的一列数据,而且还提供了许多有用的方法来操作和处理这些数据。

向量也是一组对象的集合,但相对于数组,向量可以追加对象元素数量,因此可以更方便地修改和维护序列中的对象。

Vector类的对象可以看作是一个可变大小的数组,和使用数组下标来访问数组元素类似,可以用一个整数类型的次序来访问Vector的元素,创建了Vector的对象后,如果增加了或删除了其中的元素,Vector的大小也相应地变大或者变小。

在程序设计中,经常遇到需要用一个集合作为容器来包含众多元素,而各个元素的类型及集合中元素的个数又无法预知的情况,各个元素类型又不相同的情况下,可以使用Vector类。                                                                                      除了存放数据元素的elementData域外,每个向量Vector对象还包括一个容量值elementCount和一个容量增值capacityIncrement,容量值记录Vector类中元素的实际个数,这个数不多于Vector对象的容量。当有元素被加入向量时,容量值会相应的增大,以记录目前向量的大小。当向量中增加过多的元素超过了它的容量值后,向量的存储空间以容量增值的大小为单位增长,为以后新元素的加入做好准备。一般地,向量的容量值至少和向量的实际大小一样大,而且通常还要大一些。

1.Vector类的构造方法

Vector类有三个构造方法:

public Vector()  构造一个空向量

public Vector(int initialCapacity)  以指定的初始存储容量构造一个空的向量Vector

public Vector(int initialCapacity  int capacityOncrement)  以指定的初始存储容量和容量增量构造一个空的向量Vector

例如: Vector MyVectot = new Vector(100,50);这个语句创建的MyVector向量序列初始有100个元素的空间,以后一旦空间用尽则以50为单位递增,使序列中元素的个数变化成150,200......在创建Vector序列时,不需要指明序列中元素的类型,可以在使用时确定。

2.Vector类对象的操作

向Vector类对象中添加元素有两种方法。第一种是addElement(Object obj):将新元素添加到序列尾部,第二种是insertElementAt(Object obj,int index):将指定对象obj插入到指定位置index处,并将原先索引值等于或大于该指定值的元素索引值加1,也就是原处于插入位置以及以后的元素都往后移动一个位置。

例如: Vector MyVector = new Vector();

for(int i=1;i<=10;i++){

MyVector.addElement(i);

}

MyVector.insertElementAt("middle",5);

6f6aa88e7ada54615093cb35280eb46f.png      使用以下方法可以修改或删除Vector类对象序列中的元素:

setElementAt(Object obj,int index)该方法将向量序列index位置处的对象元素设置为obj,如果这个位置原来有元素,则被新值覆盖,如果索引值index是负数或超出实际元素的个数,则抛出异常ArrayIndexOutOfBoundsException.

removeElement(Object obj)该方法将删除向量序列中第一个与obj对象相同的元素,同时将后面的元素向前提,补上空位,这个方法返回的是一个布尔值,表示删除操作成功与否。

removeElementAt(int index)该方法删除index指定位置处的元素,同时将后面的元素向前提,如果索引值index是负数或超出实际元素的个数,则抛出异常ArrayIndexOutOfBoundsException.

removeAllElements()该方法删除向量序列中的所有元素,同时向量的大小置为0.

Java还提供了在向量序列中进行的查找的操作,例如:

Object elementAt(int index)该方法返回指定位置处的元素,如果索引值index是负数或超出实际元素的个数,则抛出异常,这个方法返回值是Object类型的对象,在使用之前通常需要进行强制类型转换,将返回的对象引用转换成Object类的某个具体子类的对象。例如:

String str = (String)MyVector.elementAt(0);

boolean contains(Object obj)该方法检查向量序列中是否包含指定的对象元素obj。

int indexOf(Object obj, int start_index)该方法从指定的start_index位置开始向后搜索,返回所找到的第一个与指定对象obj相同的元素的下标位置,若指定对象不存在,返回-1.

be5ecf359bf53f5cd545ad3f333d5fd5.png

int lastIndexOf(Object obj,int start_index)该方法从指定的位置开始向前搜索,返回所找到的第一个与指定对象obj相同的元素的下标位置,若指定的对象不存在,则返回-1.

下面是Vector类中的一些常用方法:

public final int size()返回向量中的元素数量(它不是指向量的容量,而是目前实际的元素个数)

public final boolean contains(Object elem)如果对象elem是向量中的一个元素值,则返回true,否则返回false。剩下的一些方法可以在使用的时候具体查询

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值