Vector类用于保存一组对象,由于java不支持动态数组,Vector可以用于实现跟动态数组差不多的功能。如果要将一组对象存放在某种数据结构中,但是不能确定对象的个数时,Vector是一个不错的选择。

例:将键盘上输入的一个数字序列的每位数字存储在vector对象中,然后在屏幕上打印出各位数字相加的结果。

import java.util.*; //Vector类和Enumeration接口都在这个包中

public class TestVector

{

public static void main(String[] args)

{

Vector v=new Vector();

int b=0;

int num=0;

System.out.println("Please enter number:");

while(true)

{

try

{

b=System.in.read(); //从键盘读入一个字节内容

}

catch(Exception e)

{

e.printStackTrace();

}

if(b=='\r'||b=='\n') //如果是回车或换行的话,则退出while循环,即一串数据输入完成

{

break;

}

else

{

num=b-'0';

/*由于输入的是字符数字,它的数值是它的ascii码,例如‘0’=32;‘1’=33,

所以要想让输入的‘1’在计算机里为1,必须减去32,即‘0’*/

v.addElement(new Integer(num)); //将数字存入vector

}

}

int sum=0;

Enumeration e=v.elements();

//取出Vector中的所有元素,必须使用elements()方法,它返回一个Enumeration接口。

while(e.hasMoreElements())//如果当前指示器还指向一个对象,即还有数据

{

Integer intobj=(Integer)e.nextElement();

//取出当前指示器所指的对象,并将指示器指向下一个对象。

sum+=intobj.intValue(); //将Integer对象中所包装的整数取出来,并且加到sum中。

}

System.out.println(sum);//打印出这个和

}

}

Enumeration的nextelement()方法返回的是指示器指示的对象,然后将指示器指向下一个对象。

由于vector可以存储各种类型的对象,所以编译器无法知道存储的是什么类型的对象,所以即使我们知道里面存储的是什么类型的,也要显示的说明它是什么类型的,如本例中的(Integer)e.nextElement();

Enumeration接口实现了一种机制,通过这种机制,我们就可以只用hasMoreElements()方法以及nextElement()方法就可以实现所有对象的访问。

04-19 21:41