Java枚举Enumeration接口

时间:2023-02-17 15:59:02

    Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要,它在其他数据结构的范畴里应用很广。

枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。

例如,枚举定义了一个叫nextElement 的方法,该方法用来得到一个包含多元素的数据结构的下一个元素。


    如今,枚举接口已经基本上被迭代器代替了,现在很少人会使用。它还是使用在诸如Vector和Properties这些传统类所定义的方法中,除此之外,还用在一些API类,并且在应用程序中也广泛被使用。 所以说学习一下还是很有必要的!


作用:Enumeration接口定义了从一个数据结构得到连续数据的手段。枚举Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。


下面是Enumeration接口的方法:

1:boolean hasMoreElements( )=》 测试此枚举是否包含更多的元素。
2:Object nextElement( )=》如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。

实例1:

以下实例演示了Enumeration的使用:

import java.util.Vector;
import java.util.Enumeration;

public class Tester {
   public static void main(String args[]) {
      Enumeration day;
      Vector dayNames = new Vector();
      dayNames.add("星期一");
      dayNames.add("星期二");
      dayNames.add("星期三");
      dayNames.add("星期四");
      dayNames.add("星期五");
      dayNames.add("星期六");
      dayNames.add("星期日");
      day = dayNames.elements();
      while (days.hasMoreElements()){
         System.out.println(days.nextElement()); 
      }
   }


以上实例编译运行结果如下:

      星期一
      星期二
      星期三
      星期四
      星期五
      星期六
      星期日


实:2:import java.util.Enumeration;
public class MyEnumerator implements Enumeration{ 
int count; // 计数器
int length; //存储的数组的长度
Object[] dataArray; // 存储数据数组的引用
//构造器
public MyEnumerator(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++];
}


import java.util.Enumeration;


class MyDataSttuct{
String[] data;
// 构造器
public MyDataSttuct(){
data=new String[4];
data[0] ="zero";
data[1]="one";
data[2] ="two";
data[3]="three";
}
// 返回一个enumeration对象给使用程序
public Enumeration getEnum() {
return new MyEnumerator(0,data.length,data);
}
}

import java.util.*;
public class DemoEnumeration{ 
public static void main(String[] args){
//实例化MyDataStruct类型的对象
MyDataSttuct mySataStruct=new MyDataSttuct();
//得到描述myDataStruct类型对象的enumeration对象
Enumeration myEnumeration =mySataStruct.getEnum();
//使用对象循环显示myDataStruct类型的对象中的每一个元素
while (myEnumeration.hasMoreElements())
System.out.println(myEnumeration.nextElement());

}

输出结果:zero
one
two
three