標籤:style blog http color java 使用 os io
java掃盲 介面 Enumeration
摘要: 摘要: 原創出處: http://www.cnblogs.com/Alandre/ 泥沙磚瓦漿木匠 希望轉載,保留摘要,謝謝!
記起2年前,高中生活最多的是老師的批評。謝謝! -泥沙磚瓦漿木匠
一.初識Enumeration
當我寫網路編程的時候,我發現了這個介面。很神奇的是以前都沒用過,NetworkInterface.getNetworkInterfaces()返回的是Enumeration載體這NetworkInterface對象。Enumeration是java.util中的一個介面類,在Enumeration中封裝了有關枚舉資料集合的方法。Enumeration介面本身不是一個資料結構。但是,對其他資料結構非常重要。 Enumeration介面定義了從一個資料結構得到連續資料的手段。
注意:此介面的功能與 Iterator 介面的功能是重複的。此外,Iterator 介面添加了一個可選的移除操作,並使用較短的方法名。新的實現應該優先考慮使用 Iterator 介面而不是 Enumeration 介面。 二.功能的使用 java.util Enumeration<E>
通常用 Enumeration 中的以下兩個方法列印向量中的所有元素:
(1) boolean hasMoreElements()
測試此枚舉是否包含更多的元素。
(2) E nextElement()
如果此枚舉對象至少還有一個可提供的元素,則返回此枚舉的下一個元素。
用法一:
vec 是介面實作類別 Vector( 集合 ) 的對象, vec.elements() 獲得 Vector( 集合 ) 的一個元素。
for(Enumeration e = vec.elements(); e.hasMoreElements();){
System.out.println(e.nextElement());
}
用法二:
e is an object that implements the Enumeration interface
while (e.hasMoreElements()) { Object o= e.nextElement(); System.out.println(o);}
下面舉個例子:
public class TestEnumeration{ public static void main(String[] args){ Vector v = new Vector(); v.addElement("Li"); v.addElement("YYY"); v.addElement("Brown"); Enumeration e = v.elements(); while(e.hasMoreElements()){ String value = (String)e.nextElement(); System.out.println(value); } }}
你可以看到以下輸出
LiYYYBrown
三.示範Enumeration介面的使用
下面我們就實現這個介面來完成一個小功能:
MyDataStruct類用於執行個體化一個簡單的、可以提供enumeration對象,給使用程式的資料結果對象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
class MyDataStruct { String[] data; // 構造器 MyDataStruct() { data =new String[4]; data[0] ="zero"; data[1] ="one"; data[2] ="two"; data[3] ="three"; } // 返回一個enumeration對象給使用程式 Enumeration getEnum() { return new MyEnumeration(0, data.length, data); } } |
MyEnumeration類實現Enumeration介面
class MyEnumeration implements Enumeration{ int count; // 計數器 int length; // 儲存的數組的長度 Object[] dataArray; // 儲存資料數組的引用 // 構造器 MyEnumeration(int count, int length, Object[] dataArray) { this.count = count; this.length = length; this.dataArray = dataArray; } public boolean hasMoreElements() { return (count < length); } public Object nextElement() { return dataArray[count++]; }}
測試類別 MainClass
class MainClass{ public static void main(String[] args) { // 執行個體化MyDataStruct類型的對象 MyDataStruct mySataStruct = new MyDataStruct(); // 得到描述myDataStruct類型對象的enumeration對象 Enumeration myEnumeration = mySataStruct.getEnum(); // 使用對象迴圈顯示myDataStruct類型的對象中的每一個元素 while (myEnumeration.hasMoreElements()) System.out.println(myEnumeration.nextElement()); }}
你可以看到下面輸出:
zeroonetwothree
四.感謝知識來源和小結
一.初識Enumeration
二.功能的使用
三.示範Enumeration介面的使用
來自:java基礎
書法是人藝術和美的產物