java掃盲 接口 Enumeration


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

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

 

一.初識Enumeration

二.功能的使用

三.演示Enumeration接口的使用

一.初識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);
              }
       }
}

你可以看到以下輸出

Li
YYY
Brown

三.演示Enumeration接口的使用

下面我們就實現這個接口來完成一個小功能:

MyDataStruct類用於實例化一個簡單的、可以提供enumeration對象,給使用程序的數據結果對象

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM