当前位置: 首页 > 编程日记 > 正文

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>

 

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

相关文章:

Datawhale组队学习 Task01:数组(1天)

Task01&#xff1a;数组&#xff08;1天&#xff09; 1. 数组的定义 数组是具有一定顺序关系的若干对象组成的集合&#xff0c;组成数组的对象称为数组元素。 例如&#xff1a; 向量对应一维数组矩阵对应二维数组 数组名表示群体的共性&#xff0c;即具有同一种数据类型&a…

IOS一些显示效果和动画效果资料

2019独角兽企业重金招聘Python工程师标准>>> 1.基于AutoLayout的UIScrollView悬停Tab 转载于:https://my.oschina.net/zhugenqiang/blog/1551389

零基础小白学Java难度大不大

零基础小白学Java难度大不大?有很多人都是非常关心这个问题的&#xff0c;如今java在IT互联网行业的快速发展&#xff0c;引起了很多人的注意&#xff0c;那么&#xff0c;哪些人适合入行Java?零基础学习Java难度大吗?下面&#xff0c;小编就为大家解答这些问题。 零基础小白…

Datawhale组队学习 Task02:顺序表和链表(2天)

Task02 顺序表和链表&#xff08;2天&#xff09; 1. 线性表的定义与操作 1.1 线性表的定义 线性表&#xff08;Linear List&#xff09;是由n&#xff08;n > 0&#xff09;个相同类型的数据元素a1,a2,...,an 组成的有序序列。即表中除首尾元素外&#xff0c;其它元素有…

腾讯联姻开心网意欲何为

今天杨长升在新浪科技上看到这样一条信息“腾讯日前已收购开心网部分股份&#xff0c;有意成为开心网大股东。”据了解&#xff0c;早在8月就曾有消息称&#xff0c;腾讯已收购开心网部分股份&#xff0c;现有一位投资界人士处证实了最新的消息&#xff1a;“腾讯参股开心网确有…

在Excel单元格中使用下拉框

文章出处: http://www.cnblogs.com/huangcong/archive/2010/05/21/1740539.html 有时候我们只希望在Excel中的某个单元格中只允许输入某几个限定的数据,这时候我们就可能希望把该单元格设置成为下拉框的形式了,如下图所示: 下面就看看是怎么实现的吧. 1.我们选择一个单元格--数…

JavaScript中常见的错误,你犯了几个?

初学者在学JavaScript这门语言的时候&#xff0c;最害怕看到的&#xff0c;应该就是控制台出现的红色错误信息!其实解决这些错误并不难&#xff0c;这是大多数初学者难以跨越的一个心理障碍而已。 你只要认真看一看错误信息&#xff0c;其实解决错误是非常简单的。别说你英语不…

Datawhale组队学习 Task03:栈与递归(2天)

Task03&#xff1a;栈与递归&#xff08;2天&#xff09; 栈是我们经常使用的一种数据结构&#xff0c;如下图所示&#xff0c;手枪发射子弹的顺序与子弹压入弹夹的顺序是相反&#xff0c;即后压入弹夹的子弹先发射出来。 比如我们使用的Word、Excel、Photoshop等软件系统中的…

sql_trace的介绍

sql_trace的介绍 --打开trace文件设置&#xff0c;把sql trace设置为true&#xff0c;就会在udump目录中增加一个trc文件。alter session set sql_tracetrue;show parameter sql_trace;&#xff08;select * from v$parameter where namesql_trace;&#xff09;修改后不生效呢&…

Console-算法[if,while]-一输入两个正整数m和n,求其最大公约数和最小公倍数

ylbtech-Arithmetic:Console-算法[if,while]-一输入两个正整数m和n&#xff0c;求其最大公约数和最小公倍数1.A&#xff0c;Demo(案例)输入两个正整数m和n&#xff0c;求其最大公约数和最小公倍数。 1.程序分析&#xff1a;利用辗除法。 1.B&#xff0c;Solution(解决方案)usin…

UI设计培训之如何将设计理论与实践相结合

学习UI设计理论知识与实践技术都是要有的&#xff0c;很多人都不爱去听理论知识&#xff0c;这对以后的工作是没有任何帮助的&#xff0c;只有将设计理论与实践相结合才能帮助到自己&#xff0c;那么如何将设计理论与实践相结合?来看看本期下面的详细介绍。 如何将设计理论与实…

Datawhale组队学习 Task04:队列(2天)

Task04&#xff1a;队列&#xff08;2天&#xff09; 队列也是我们经常使用的一种数据结构&#xff0c;如下图所示&#xff0c;购物结账&#xff0c;去食堂打饭等都需要排队&#xff0c;而结账或打饭的顺序与我们排队的顺序是相同的&#xff0c;即谁先排队就为谁先服务。 比如…

ios(iphone/ipad)开发笔记(1)

CGContextRefCGContextRefiphone开发刚刚入门 求个师傅iphone拨号键盘请问自己如果做sdkOpenGL ES 2.0有没有顶点光照的例子&#xff1f;socket通信哪位大侠帮帮忙&#xff1f;如何在tableView中使用自定义的cell&#xff1f;新手求指导Iphone按大圆钮时触发什么事件flash视频转…

如何查看Linq to SQL运行时,实际执行的Sql语句

调试Linq to sql代码是&#xff0c; 如果遇到错误&#xff0c;很难判断错误的原因是什么&#xff0c;如果能够输出实际执行的sql原文&#xff0c;对于我们寻找错误的原因有有很大帮助。 以下是我用到的方法: StringBuilder sql new StringBuilder();try{using (var context n…

Java培训零基础学员必须要知道的知识点

学习java那么遇到的知识点有很多&#xff0c;很多同学都会问到一些关于java的编程知识点&#xff0c;下面小编就为大家整理一下java培训零基础学员必须要知道的6个知识点。 Java培训零基础学员必须要知道的6个知识点&#xff1a; JVM作为java运行的基础来说&#xff0c;掌握透析…

SpringCloud Alibaba集成 Gateway(自定义负载均衡器)、Nacos(配置中心、注册中心)、Loadbalancer

要为未被某些网关路由谓词处理的请求提供相同的CORS配置,请将属性spring.cloud.gateway.globalcors.add-to-simple-url-handler-mapping设置为true。断言(Predicate):Java8中的断言函数,Spring Cloud Gateway中的断言函数输入类型是 Spring5.0框架中的ServerWebExchange。对于所有GET请求的路径,来自docs.spring.io的请求都将允许CORS请求。

并发编程下的集合:数组寻址、LinkedList、HashMap、ConcurrentHashMap

如果发现hash取模后的数组索引位下无元素则直接新增,若不是空那就说明存在hash冲突,则判断数组索引位链表结构中的第一个元素的key以及hash值是否与新的key一致则直接覆盖,若不一致则判断当前的数组索引下的链表结构是否为红黑树,若为红黑树则走红黑树的新增方法,若不为红黑树则遍历当前链表结构,遍历中发现某个节点元素的next为null是则直接将新元素指针与next进行关联,若在遍历到next为空前判断到,某个节点的key以及key的hash值与新的key与新的keyhash值一致时则走覆盖。

【日常开发之插件篇】IDEA plugins 神器助我!!

今早因为老代码的一些bug让我突然觉得Idea的一些插件特别好用,我准备将我平时所用到的一些插件做个推荐以及记录。

【日常开发之FTP】Windows开启FTP、Java实现FTP文件上传下载

FTP是一个专门进行文件管理的操作服务,一般来讲可以在任意的操作系统之中进行配置,但是如果考虑到简便性,一般来讲可以直接在Linux系统下进行安装。FTP (File Transfer Protocol、文件传输协议)是TCP/IP协议中的一部分,属于应用层协议。使用FTP最主要的功能是对文件进行管理,所以在FTP内部对于文件支持有两种传输模式:文本模式(ASCII、默认)和二进制模式(Binary),通常文本文件使用ASCIl模式,而对于图片、视频、声音、压缩等文件则会使用二进制的方式进行传输。

【Linux之升华篇】Linux内核锁、用户模式与内核模式、用户进程通讯方式

alloc_pages(gfp_mask, order),_ _get_free_pages(gfp_mask, order)等。字符设备描述符 struct cdev,cdev_alloc()用于动态的分配 cdev 描述符,cdev_add()用于注。外,还支持语义符合 Posix.1 标准的信号函数 sigaction(实际上,该函数是基于 BSD 的,BSD。从最初的原子操作,到后来的信号量,从。(2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的。

【Mongdb之数据同步篇】什么是Oplog、Mongodb 开启oplog,java监听oplog并写入关系型数据库、Mongodb动态切换数据源

oplog是local库下的一个固定集合,Secondary就是通过查看Primary 的oplog这个集合来进行复制的。每个节点都有oplog,记录这从主节点复制过来的信息,这样每个成员都可以作为同步源给其他节点。Oplog 可以说是Mongodb Replication的纽带了。

zookeeper集群部署以及zookeeper原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集,提供Java和C的接口。

【日常开发之Windows共享文件】Java实现Windows共享文件上传下载

下拉框选择你选择的用户点击添加,然后共享确定。创建一个文件夹然后点击属性界面,点击共享。maven版本存在于SMB协议的兼容问题。首先开启服务,打开控制面板点击程序。点击启用或关闭Windows功能。我这边是专门创建了一个用户。SMB1.0选中红框内的。

rust wasm入门

demo## 编译 Rust 为 WebAssembly在本教程中,我们将使用 Rust 的 npm 包构建工具 wasm-pack 来构建一个 npm 包。

minikube环境搭建

📕作者简介:过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。📘相关专栏系列、spring教程等,大家有兴趣的可以看一看📙系列,系列、系列正在发展中,喜欢Java,GoLang,Rust,的朋友们可以关注一下哦!@[TOC]# minikube## 安装### 前置条件已经安装docker### 乌班图安装科学上网是我你们安装的前提。```shell。

Pods/Nodes

Pod 容器组 是一个k8s中一个抽象的概念,用于存放一组 container,以及这些 container (容器)的一些共享资源。共享存储,称为卷(Volumes),即图上紫色圆柱网络,每个 Pod(容器组)在集群中有个唯一的 IP,pod(容器组)中的 container(容器)共享该IP地址container(容器)的基本信息,例如容器的镜像版本,对外暴露的端口等Pod(容器组)是 k8s 集群上的最基本的单元。

公布应用程序

当 worker node(节点)故障时,节点上运行的 Pod(容器组)也会消失。然后,Deployment (opens new window)可以通过创建新的 Pod(容器组)来动态地将群集调整回原来的状态,以使应用程序保持运行。举个例子,假设有一个图像处理后端程序,具有 3 个运行时副本。这 3 个副本是可以替换的(无状态应用),即使 Pod(容器组)消失并被重新创建,或者副本数由 3 增加到 5,前端系统也无需关注后端副本的变化。

伸缩应用程序和执行滚动更新

原本 Service A 将流量负载均衡到 4 个旧版本的 Pod 上2. 更新完 Deployment 部署文件中的镜像版本后,master 节点选择了一个 worker 节点,并根据新的镜像版本创建 Pod(紫色容器)。新 Pod 拥有唯一的新的 IP。同时,master 节点选择一个旧版本的 Pod 将其移除。此时,Service A 将新 Pod 纳入到负载均衡中,将旧Pod移除同步骤2,再创建一个新的 Pod 替换一个原有的 Pod。

Kubernetes对象的定义和操作

Kubernetes对象指的是Kubernetes系统的持久化实体,所有这些对象合起来,代表了你集群的实际情况。常规的应用里,我们把应用程序的数据存储在数据库中,Kubernetes将其数据以Kubernetes对象的形式通过 api server存储在 etcd 中。集群中运行了哪些容器化应用程序集群中对应用程序可用的资源应用程序相关的策略定义,例如,重启策略、升级策略、容错策略其他Kubernetes管理应用程序时所需要的信息。

名称和命名空间

📕作者简介:过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。📘相关专栏系列、spring教程等,大家有兴趣的可以看一看📙系列,系列、系列正在发展中,喜欢Java,GoLang,Rust,的朋友们可以关注一下哦!