(轉)簡單介紹java Enumeration

weixin_34067049發表於2015-05-13
 

簡單介紹java Enumeration

分類: java技術備份

Enumeration介面 
Enumeration介面本身不是一個資料結構。但是,對其他資料結構非常重要。 Enumeration介面定義了從一個資料結構得到連續資料的手段。例如,Enumeration定義了一個名為nextElement的方法,可以用來從含有多個元素的資料結構中得到的下一個元素。 
Enumeration介面提供了一套標準的方法,由於Enumeration是一個介面,它的角色侷限於為資料結構提供方法協議。下面是一個使用的例子: 
//e is an object that implements the Enumeration interface
while (e.hasMoreElements()) {
    Object o= e.nextElement();
    System.out.println(o);

實現該介面的物件由一系列的元素組成,可以連續地呼叫nextElement()方法來得到 Enumeration列舉物件中的元素。Enumertion介面中僅定義了下面兩個方法。 
·boolean hasMoreElemerts() 
測試Enumeration列舉物件中是否還含有元素,如果返回true,則表示還含有至少一個的元素。 
·Object nextElement() 
如果Bnumeration列舉物件還含有元素,該方法得到物件中的下一個元素。

【例】
/*
* @(#)DemoEnumeration.java 
* 演示Enumeration介面的使用
* / 
import java.util.*;
class DemoEnumeration{ 
     public static void main(String[] args){
          //例項化MyDataStruct型別的物件
          MyDataStruct mySataStruct=new myDataStruct();
          //得到描述myDataStruct型別物件的enumeration物件
          Enumeration myEnumeration =myDataStruct.getEnum();
         //使用物件迴圈顯示myDataStruct型別的物件中的每一個元素
         while (myEnumeration.hasMoreElements())
               System.out.println(myEnumeration.nextElement());
    } 
}

//MyEnumeration類實現Enumeration介面
class MyEnumerator 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++];
      }

//MyDataStruct類用於例項化一個簡單的、可以提供enumeration物件
//給使用程式的資料結果物件
class MyDataSttuct

     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);
    }

程式的執行結果為: 
zero
one
two
three

 

相關文章