java掃盲 介面 Enumeration

來源:互聯網
上載者:User

標籤: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基礎

書法是人藝術和美的產物

              

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.