比如我写以下代码:
import  java.util.Hashtable;
import  java.util.Enumeration;class hashtest{
public void main(String args[]){
Hashtable ht=new Hashtable();
ht.put(1,"a");
ht.put(2,"b");
Enumeration e=ht.keys();
for(;e.hasMoreElements();){
int i= e.nextElement();  //编译提示该行错误
System.out.println(i);
}
}
}编译错误:不兼容的类型
尝试把上面错误那行改为int i= int(e.nextElement());  提示:需要”;“请问怎样才能把hashtable的键或值赋值给变量?谢谢~

解决方案 »

  1.   

    我英语不是很好,拼错了额,是iterator  呵呵  丢人
    方法很简单,用hasNext判断,用next返回迭代的元素
      

  2.   

    import  java.util.Hashtable; 
    import  java.util.Enumeration; public class HashTest{ 
    public static void main(String args[]){ 
    Hashtable<Integer, String> ht = new Hashtable<Integer, String>(); 
    ht.put(1,"a"); 
    ht.put(2,"b");  Enumeration<Integer> e=ht.keys(); 
    for(;e.hasMoreElements();){ 
    int i= e.nextElement(); 
    System.out.println(i); 


      

  3.   

    e.nextElement();返回的Object类型,你直接赋给int类型当然不行,你那强制类型转换的方法也不对,可以用
    int i= Integer.parseInt(e.nextElement().toString()); 
    不过最好像3楼那样,jdk5.0后引入了泛型,你在定义Hashtable之类的集合类时最好指明它里面键值对的类型
      

  4.   

    定义hashtable的时候,明确类型,否则需要转换数据类型