public interface Enumeration
实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个。连续调用 nextElement方法将返回一系列的连续元素。
例如,要输出 Vector v的所有元素,可使用以下方法:
for (Enumeration e = v.elements(); e.hasMoreElements();)
System.out.println(e.nextElement());
这些方法主要通过向量的元素、哈希表的键以及哈希表中的值进行枚举。枚举也用于将输入流指定到 SequenceInputStream中。
注:此接口的功能与 Iterator 接口的功能是重复的。此外,Iterator 接口添加了一个可选的移除操作,并使用较短的方法名。新的实现应该优先考虑使用 Iterator 接口而不是 Enumeration 接口。
importjava.util.Enumeration;public classDemoEnumeration {public static voidmain(String[] args) {//实例化MyDataStruct类型的对象
MyDataStruct myDataStruct=newMyDataStruct();//得到描述myDataStruct类型对象的enumeration对象
Enumeration myEnumeration =myDataStruct.getEnum();//使用对象循环显示myDataStruct类型的对象中的每一个元素
while(myEnumeration.hasMoreElements())
System.out.println(myEnumeration.nextElement());
}
}//MyEnumeration类实现Enumeration接口
class MyEnumeration implements Enumeration{int count; //计数器
int length; //存储的数组的长度
Object[] dataArray; //存储数据数组的引用
MyEnumeration(int count,intlength,Object[] dataArray){this.count =count;this.length=length;this.dataArray=dataArray;
}public booleanhasMoreElements() {return (count
}publicObject nextElement() {return dataArray[count++];
}
}//MyDataStruct类用于实例化一个简单的、可以提供enumeration对象//给使用程序的数据结果对象
classMyDataStruct{
String[] data=null;
MyDataStruct(){
data=new String[4];
data[0] ="zero";
data[1]="one";
data[2] ="two";
data[3]="three";
}//返回一个enumeration对象给使用程序
EnumerationgetEnum() {return new MyEnumeration(0,data.length,data);
}
}
应用一:
importjava.util.Enumeration;importjava.util.Vector;public classVectorTest {public static voidmain(String[] args){
Vector myvector=new Vector();
myvector.addElement("hello1");
myvector.addElement("hello2");
myvector.addElement("hello3");for(Enumeration enu=myvector.elements();enu.hasMoreElements();){//输出 myvector的所 有元素,可使用以下方法:
System.out.println(enu.nextElement());//nextElement()如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素
}
Enumeration enu=myvector.elements();while(enu.hasMoreElements()){ //hasMoreElements()测试此枚举是否包含更多的元素
System.out.println(enu.nextElement());
}
System.out.println(myvector.getClass().getName()+ '@' +Integer.toHexString(myvector.hashCode()));
}
}
应用二:
packageenumeration;importjava.util.Enumeration;importjava.util.Hashtable;public classHashtableTest {public static voidmain(String[] args) {
Hashtable hash = new Hashtable();
hash.put("one", "1");
hash.put("two", "2");
hash.put("three", "3");
Enumeration enumkey =hash.keys();while(enumkey.hasMoreElements()) {
String str=(String) enumkey.nextElement();
System.out.println("--------" +str);
System.out.println("=========" +hash.get(str));if ("1".equals(hash.get(str)))
hash.remove(str);
}
System.out.println("-ssssssssssssssssssss-" + hash.get("three"));
enumkey=hash.keys();while(enumkey.hasMoreElements()) {
String str=(String) enumkey.nextElement();
System.out.println("--------" +str);
System.out.println("=========" +hash.get(str));
}
}
}
应用三:
志愿者注册
姓名: | |
email: | |
性别: | 男女 |
会何种外语: | 英语法语俄语德语 |
注册地区: | 北京 上海 |
个人简介: | |
您提交的内容如下:
request.setCharacterEncoding("GBK");
Enumeration params =request.getParameterNames();while(params.hasMoreElements()) {
current_param=(String) params.nextElement();
out.print("参数名:" +current_param);
String[] values=request.getParameterValues(current_param);for (int i = 0; i < values.length; i++)
out.print(" 参数值:" +values[i]);
out.print("
");
}%>