您的位置:首页 > 编程语言 > Java开发

简单介绍java Enumeration

2017-04-28 10:17 267 查看
简单介绍java Enumeration
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类型的对象

          MyDataStructmySataStruct=new myDataStruct();

          //得到描述myDataStruct类型对象的enumeration对象

          EnumerationmyEnumeration =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() {

            returndataArray[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 newMyEnumeration(0,data.length,data);

    }
程序的运行结果为: 

zero

one

two

three
 

 

 Java-Enumeration总结

 

Enumeration(枚举)接口的作用和Iterator类似,只提供了遍历Vector和HashTable类型集合元素的功能,不支持元素的移除操作。

 

Java8中Enumeration接口的源码:

public interface Enumeration<E> {
/**
     * Tests if this enumeration contains more elements.
     *
     * @return  <code>true</code> if and only if this enumeration object
     *           contains at least one more element to provide;
     *          <code>false</code> otherwise.
     */
boolean hasMoreElements();//判断是否包含元素

/**
     * Returns the next element of this enumeration if this enumeration
     * object has at least one more element to provide.
     *
     * @return     the next element of this enumeration.
     * @exception  NoSuchElementException  if no more elements exist.
     */
E nextElement();//获得下一个元素
}

通过Enumeration的源码分析可得,Enumeration有两个方法:

(1)boolean hasMoreElements();//是否还有元素,如果有返回true,否则表示至少含有一个元素

(2)E nextElement();//如果Enumeration枚举对象还有元素,返回对象只能的下一个元素,否则抛出NoSuchElementException异常。

 

简单示例:

public class TestEnumeration{
public static void main(String[] args){
        Vector v = new Vector();
        v.addElement("Lisa");
        v.addElement("Billy");
        v.addElement("Mr Brown");
        Enumeration e = v.elements();//返回Enumeration对象
        while(e.hasMoreElements()){
            String value = (String)e.nextElement();//调用nextElement方法获得元素
            System.out.print(value);
        }
    }
}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: