for (Enumeration e = vScore.elements() ; e.hasMoreElements() ;)不理解(vScore是Vector类的)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for (Enumeration e = vScore.elements() ; e.hasMoreElements() ;)不理解(vScore是Vector类的)相关的知识,希望对你有一定的参考价值。
这个程序如下:
import java.util.*;
public class UseEnumeration
/**
* @param args
*/
public static void main(String[] args)
// TODO Auto-generated method stub
Vector vScore = new Vector();
vScore.add("86");
vScore.add("98");
vScore.add(1,"99");
System.out.println("Vector:" + vScore.toString());
for (Enumeration e = vScore.elements() ; e.hasMoreElements() ;)
System.out.println(e.nextElement());
Hashtable hScore = new Hashtable();
hScore.put("张一","86");
hScore.put("李二","98");
hScore.put("海飞","99");
System.out.println("Hashtable:" + hScore.toString());
for (Enumeration e = hScore.keys() ; e.hasMoreElements() ;)
String str = (String)e.nextElement();
System.out.print(str + ":");
System.out.println(hScore.get(str));
有以下几个问题:
1.这个for语句怎么没写步长,那么会循环几遍?假设vScore有3个元素。
2.Vector.elements是什么功能的函数?居然在Vector类的百度中查不到。
3.Enumeration不过是个接口而已,那么e算什么类的?为何其定义中看不到类名?
2. 很少用Vector,但是你看他返回值是Enumeration,明显就是一个迭代器
3. Enumeration是个接口没错,对应类型实现了迭代器接口证明它就是一个迭代器,你无需知道其实现类是什么。 参考技术A 1.e.nextElement()这句话就是不常
2.返回这个vector元素的枚举
3.e是Enumeration的实现类。具体可以去看源代码
以上是关于for (Enumeration e = vScore.elements() ; e.hasMoreElements() ;)不理解(vScore是Vector类的)的主要内容,如果未能解决你的问题,请参考以下文章
将 Enumeration<Integer> for 循环从 Java 转换为 C#? C# 中的 Enumeration<Integer> 到底是啥? [复制]