首页 > java 中的 Enumeration 在Vector,Hashtable和web中的应用

java 中的 Enumeration 在Vector,Hashtable和web中的应用

public interface Enumeration

实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个。连续调用 nextElement方法将返回一系列的连续元素。

例如,要输出 Vector v的所有元素,可使用以下方法:

   for (Enumeration e = v.elements(); e.hasMoreElements();)System.out.println(e.nextElement());

这些方法主要通过向量的元素、哈希表的键以及哈希表中的值进行枚举。枚举也用于将输入流指定到 SequenceInputStream中。

注:此接口的功能与 Iterator 接口的功能是重复的。此外,Iterator 接口添加了一个可选的移除操作,并使用较短的方法名。新的实现应该优先考虑使用 Iterator 接口而不是 Enumeration 接口。

 

import java.util.Enumeration;
public class DemoEnumeration {public static void main(String[] args) {//实例化MyDataStruct类型的对象MyDataStruct myDataStruct=new MyDataStruct();//得到描述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,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 MyDataStruct{String[] data=null;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);}
}  

 

 

 应用一:

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

public class VectorTest {public static void main(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()));} }

 

应用二:

package enumeration;
import java.util.Enumeration;
import java.util.Hashtable;public class HashtableTest {public static void main(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));}}
}

 

应用三:

志愿者注册

姓名:value="chenxd" />
email:value="[email protected]" />
性别:
会何种外语:英语法语俄语德语
注册地区:
个人简介:

 

用户注册:使用request对象获取用户提交数据

您提交的内容如下:

<%String current_param = "";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("
");}%>

 

 

 

 

 

转载于:https://www.cnblogs.com/mingforyou/archive/2011/11/02/2233514.html

更多相关:

  • 蒙特卡洛法和时序差分学习Note 10 蒙特卡洛法和时序差分学习 Monte Carlo and Temporal Difference10.1 蒙特卡洛法和时序差分学习 (Monte Carlo and Temporal Difference)10.2 Q中的TD学习(TD Learning in QQQ )10.3 资格迹(Eli...

  • 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例5.1 TD预测例5.1 回家时间的估计5.2 TD预测方法的优势例5.2 随机移动5.3 TD(0)最优性例5.3:批量更新下的随机行走例5.4: You are the Predictor5.4 Sarsa:策略 TD控制例 5.5...

  • 新建一个login文件,里面存放的就是用户登录的模块。 在body...

  • 练习1:Ecshop  录制登录后退出业务  打开系统  存储页面的标题     a.点击"登录"按钮     b.输入用户名:testing      存储输入的用户名     c.输入密码:123456     d.点击"立即登录"按钮      存储登录成功的提示信息      存储登录成功后页面显示的用户名     e.选择...

  • importjava.security.SecureRandom;importjavax.crypto.Cipher;importjavax.crypto.SecretKey;importjavax.crypto.SecretKeyFactory;importjavax.crypto.spec.DESKeySpec;//结果与DES算...

  • 题目:替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 输入:s = "We are happy." 输出:"We%20are%20happy." 限制: 0 <= s 的长度 <= 10000 解题: 时间复杂度:O(n) 空间复杂度:O(n) class Solution { public:s...

  • 在C++11标准库中,string.h已经添加了to_string方法,方便从其他类型(如整形)快速转换成字面值。 例如: for (size_t i = 0; i < texArrSize; i++)RTX_Shader.SetInt(string("TexArr[") + to_string(i) + "]", 7 + i);...

  • Ubuntu 14.04安装并升级之后,变成楷体字体非常难看,我昨天搞了一晚上,终于理了个头绪,这里整理一下。 经过网上调研,大家的一致看法是,使用开源字体库文泉驿的微黑字体效果比较理想,甚至效果不输windows平台的雅黑字体。下面我打算微黑来美化Ubuntu 14.04. 1.安装文泉驿微黑字体库 sudo aptitude...

  • 使用string时发现了一些坑。 我们知道stl 容器并不是线程安全的,所以在使用它们的过程中往往需要一些同步机制来保证并发场景下的同步更新。 应该踩的坑还是一个不拉的踩了进去,所以还是记录一下吧。 string作为一个容器,随着我们的append 或者 针对string的+ 操作都会让string内部的数据域动态增加,而动态增加的...

  • 输入格式 输入文件的第 1 行包含两个数 N 和 M,N 表示初始时数列中数的个数,M 表示要进行的操作数目。 第 2 行包含 N 个数字,描述初始时的数列。 以下 M 行,每行一条命令,格式参见问题描述中的表格 输出格式 对于输入数据中的 GET-SUM 和 MAX-SUM 操作,向输出文件依次打印结 果,每个答案(数字)占...

  • 【传送门:BZOJ4491】 简要题意:   给出一个长度为n的序列,m个操作,每个操作输入x,y,求出第x个数到第y个数的最长子串,保证这个最长子串是不上升或不下降子串 题解:   线段树   因为不上升或不下降嘛,就差分一下呗   每一段区间维护:   d表示最多连续的非正数的个数,u表示最多连续的非负数的个数   ld表示左端点...

  • 主体段树,要注意,因为有set和add操作,当慵懒的标志下推。递归优先set,后复发add,每次运行set行动add马克清0 WA了好几次是由于计算那一段的时候出问题了,可笑的是我对着模板找了一个多小时的错。 #include #include #include #include

  • 但是对于表格要注意,在

    和之间还有一个,即使你在构建
    时没有使用这个