zoukankan      html  css  js  c++  java
  • java 中的 Enumeration 在Vector,Hashtable和web中的应用

    public interface Enumeration<E>

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

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

       for (Enumeration<E> 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<Object> myEnumeration =myDataStruct.getEnum();
           //使用对象循环显示myDataStruct类型的对象中的每一个元素
           while (myEnumeration.hasMoreElements())
                 System.out.println(myEnumeration.nextElement());
     }
    }
    //MyEnumeration类实现Enumeration接口
    class MyEnumeration implements Enumeration<Object>
    {
          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<Object> 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<String> myvector=new Vector<String>(); myvector.addElement("hello1"); myvector.addElement("hello2"); myvector.addElement("hello3"); for(Enumeration<String> enu=myvector.elements();enu.hasMoreElements();){    //输出 myvector的所 有元素,可使用以下方法: System.out.println(enu.nextElement());//nextElement()如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素 } Enumeration<String> 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<String, String> hash = new Hashtable<String, String>();
      hash.put("one", "1");
      hash.put("two", "2");
      hash.put("three", "3");
      Enumeration<String> 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));
      }
     }
    }

    应用三:

    <html>
     <head>
      <base href="<%=basePath%>">
      <title></title>
     </head>
     <body>
      <center>
       <h2>
        志愿者注册
       </h2>
       <FORM action="doSubmit.jsp" method="post">
        <table border=0>
         <tr valign="top">
          <td align="right">
           姓名:
          </td>
          <td align="left">
           <input type="text" name="name" maxlength="50" size="40"
            value="chenxd" />
          </td>
         </tr>
         <tr valign="top">
          <td align="right">
           email:
          </td>
          <td align="left">
           <INPUT type="text" name="email" maxlength="80" size="40"
            value="yourname@beijing2008.com" />
          </td>
         </tr>
         <tr valign="top">
          <td align="right">
           性别:
          </td>
          <td align="left">
           <INPUT type="radio" name="sex" value="男" checked="true" /><INPUT type="radio" name="sex" value="女" /></td>
         </tr>
         <tr valign="top">
          <td align="right">
           会何种外语:
          </td>
          <td align="left">
           <input type="checkbox" name="lang" value="英语" checked="true" />
           英语
           <input type="checkbox" name="lang" value="法语" />
           法语
           <input type="checkbox" name="lang" value="俄语" />
           俄语
           <input type="checkbox" name="lang" value="德语" />
           德语
          </td>
         </tr>
         <tr valign="top">
          <td align="right">
           注册地区:
          </td>
          <td align="left">
           <select name="regTelephone">
            <option value="800-810-2008">
             北京
            </option>
            <option value="800-820-2008" selected="true">
             上海
            </option>
           </select>
          </td>
         </tr>
         <tr valign="center">
          <td align="right">
           个人简介:
          </td>
          <td align="left">
           <textarea rows="5" cols="40" name="intro"></textarea>
          </td>
         </tr>
         <tr valign=top>
          <td colspan="2" align="center">
           <INPUT type="submit" value="注册" />
           <INPUT type="reset" value="重置"/>
          </td>
         </tr>
        </table>
       </FORM>
      </center>
     </body>
    </html>
    <html>
     <head>
      <base href="<%=basePath%>">
      <title>用户注册:使用request对象获取用户提交数据</title>
     </head>
     <body>
      <h2>
       您提交的内容如下:
      </h2>
      <%
       String current_param = "";
       request.setCharacterEncoding("GBK");
       Enumeration<String> 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("<br>");
       }
      %>
     </body>
    </html>

     

  • 相关阅读:
    Exp9 Web安全基础
    Exp 8 Web基础 ——20175201张驰
    Exp7 网络欺诈防范 20175201张驰
    《知识付费平台》个人报告——20175201张驰
    20175201 EXP6 MSF基础应用
    Exp5 信息搜集与漏洞扫描——20175201张驰
    Exp4 恶意代码分析—20175201张驰
    20175201张驰exp3——免杀原理与实践
    #20175201张驰 网络对抗exp2——后门原理与实践
    20175201张驰 网络对抗exp1—PC平台逆向破解
  • 原文地址:https://www.cnblogs.com/mingforyou/p/2233514.html
Copyright © 2011-2022 走看看