java掃盲 接口 Enumeration

java掃盲 接口 Enumeration

摘要: 摘要: 原創出處: http://www.cnblogs.com/Alandre/ 泥沙磚瓦漿木匠 但願轉載,保留摘要,謝謝! html

記起2年前,高中生活最多的是老師的批評。謝謝! -泥沙磚瓦漿木匠

 

一.初識Enumeration

    當我寫網絡編程的時候,我發現了這個接口。很神奇的是之前都沒用過,NetworkInterface.getNetworkInterfaces()返回的是Enumeration載體這NetworkInterface對象。Enumeration是java.util中的一個接口類,在Enumeration中封裝了有關枚舉數據集合的方法。Enumeration接口自己不是一個數據結構。可是,對其餘數據結構很是重要。 Enumeration接口定義了從一個數據結構獲得連續數據的手段。
                                  java

注意:此接口的功能與 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()); 
}

用法二: this

e is an object that implements the Enumeration interface spa

複製代碼
while (e.hasMoreElements()) { Object o= e.nextElement(); System.out.println(o); }
複製代碼

下面舉個例子: code

複製代碼
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); } } }
複製代碼

你能夠看到如下輸出

Li YYY Brown

三.演示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()); } }
複製代碼

你能夠看到下面輸出:

zero one two three

四.感謝知識來源和小結

一.初識Enumeration

二.功能的使用

三.演示Enumeration接口的使用

 

來自:java基礎

書法是人藝術和美的產物

              QQ Photo20140812223610

相關文章
相關標籤/搜索