1.1.2.2 Vector類與Enumeration接口
Vector類用于保存一組對象,由于java不支持動態(tài)數(shù)組,Vector可以用于實現(xiàn)跟動態(tài)數(shù)組差不多的功能。如果要將一組對象存放在某種數(shù)據(jù)結(jié)構(gòu)中,但是不能確定對象的個數(shù)時,Vector是一個不錯的選擇。
例:將鍵盤上輸入的一個數(shù)字序列的每位數(shù)字存儲在vector對象中,然后在屏幕上打印出各位數(shù)字相加的結(jié)果。
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(); //從鍵盤讀入一個字節(jié)內(nèi)容
}
catch(Exception e)
{
e.printStackTrace();
}
if(b=='\r'||b=='\n') //如果是回車或換行的話,則退出while循環(huán),即一串?dāng)?shù)據(jù)輸入完成
{
break;
}
else
{
num=b-'0';
/*由于輸入的是字符數(shù)字,它的數(shù)值是它的ascii碼,例如‘0’=32;‘1’=33,
所以要想讓輸入的‘1’在計算機里為1,必須減去32,即‘0’*/
v.addElement(new Integer(num)); //將數(shù)字存入vector
}
}
int sum=0;
Enumeration e=v.elements();
//取出Vector中的所有元素,必須使用elements()方法,它返回一個Enumeration接口。
while(e.hasMoreElements())//如果當(dāng)前指示器還指向一個對象,即還有數(shù)據(jù)
{
Integer intobj=(Integer)e.nextElement();
//取出當(dāng)前指示器所指的對象,并將指示器指向下一個對象。
sum+=intobj.intValue(); //將Integer對象中所包裝的整數(shù)取出來,并且加到sum中。
}
System.out.println(sum);//打印出這個和
}
}
Enumeration的nextelement()方法返回的是指示器指示的對象,然后將指示器指向下一個對象。
由于vector可以存儲各種類型的對象,所以編譯器無法知道存儲的是什么類型的對象,所以即使我們知道里面存儲的是什么類型的,也要顯示的說明它是什么類型的,如本例中的(Integer)e.nextElement();
Enumeration接口實現(xiàn)了一種機制,通過這種機制,我們就可以只用hasMoreElements()方法以及nextElement()方法就可以實現(xiàn)所有對象的訪問。
相關(guān)推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |