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++];
}
}
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);
}
}
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());
}
}
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
one
two
three