Java Enumeration

添加评论 57 views 2010年3月24日

Enumeration为接口,位于java.util包中,它生成一系列元素,一次生成一个。连续调用 nextElement 方法将返回一系列的连续元素。

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

1
2
3
for (Enumeration e = v.elements(); e.hasMoreElements();){	
     System.out.println(e.nextElement());
}


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

使用Enumeration遍历Hashtable:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Hashtable hash=new Hashtable();  
hash.put( "abc","1");   
hash.put("ddd","1");   
hash.put( "asdf","2");   
Enumeration enumkey = hash.keys() ;   
while(enumkey.hasMoreElements()){    
    String str=(String)enumkey.nextElement();    
    System.out.println("--------"+str);    
    System.out.println("========="+hash.get( str));   
}
enumkey = hash.keys() ;   
while(enumkey.hasMoreElements()){    
     String str=(String)enumkey.nextElement();    
     System.out.println("--------"+str);    
     System.out.println("========="+hash.get( str));   
}

从上面的代码可以看出遍历一个枚举对象有两种方法,一种是for循环一种是使用while,应该特别注意使用for循环的方法与普通的for循环有点差异。

为了读取枚举值中的内容,还可以使用IO输入流SequenceInputStream 将内容输出。
在Servlet中,通过request.getParameterNames()可以获取到请求中的附加参数的枚举值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Enumeration enume = request.getParameterNames();	
PrintWriter out = response.getWriter();	
out.write("");	
out.write("");	
out.write("");	
out.write("servlet演示");
out.write("");	
out.write("");	
out.write("");	
out.write("传递的参数信息:");	
while (enume.hasMoreElements()) {		
          String paramName = enume.nextElement().toString();		
          out.write(paramName + "=" + request.getParameter(paramName));	
}	
out.write("");	
out.write("");

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

Reblog this post [with Zemanta]
  1. 还没有评论.想坐沙发?
  1. 还没有 trackbacks
订阅评论