import java.util.HashMap;
import java.util.Set;
import java.util.Iterator;
public class MyHashMap{
public static void main(String[] args){
HashMap hm = new HashMap();
hm.put(1,"Eric" );
hm.put( 2,"arfdc");
hm.put( 3,"abffc");
hm.put(4,"abhdc");
hm.remove(3);
hm.put(5,"coco");
Set s=hm.keySet();
Iterator ite=s.iterator();
while(true){
if(false==ite.hasNext()){
break;
}
String key=(String)ite.next();
int value=(Integer)hm.get(key);
System.out.println(key+"-"+value);
}

}
}怎么这个总是运行不了呢。。
请帮忙解决一下谢谢

解决方案 »

  1.   

    是不是出现ClassCastException拉
    String key=(String)ite.next();
    int value=(Integer)hm.get(key);
    应该是Integer key = (Integer)ite.next();
    String value=(String)hm.get(key);好小子 你正好给些颠倒了
      

  2.   

    import java.util.HashMap;
    import java.util.Set;
    import java.util.Iterator;
    public class MyHashMap{
        public static void main(String[] args){
            HashMap hm = new HashMap();
            hm.put(1,"Eric" );
            hm.put( 2,"arfdc");
            hm.put( 3,"abffc");
            hm.put(4,"abhdc");
            hm.remove(3);
            hm.put(5,"coco");
            Set s=hm.keySet();
            Iterator ite=s.iterator();
            while(true){
                if(false==ite.hasNext()){
                break;
            }
            Integer key=(Integer)ite.next();
            String value=(String)hm.get(key);
            System.out.println(key+"-"+value);
            }
            
            }
    }
    测试结果:1-Eric
    2-arfdc
    4-abhdc
    5-coco
    你把键和值的顺序搞错了
    你的代码
     String key=(String)ite.next();
            int value=(Integer)hm.get(key);你定义的map键是Integer的值是String的
      

  3.   

    import java.util.HashMap;
    import java.util.Set;
    import java.util.Iterator;
    public class MyHashMap{
        public static void main(String[] args){
            HashMap hm = new HashMap();
            hm.put(1,"Eric" );
            hm.put( 2,"arfdc");
            hm.put( 3,"abffc");
            hm.put(4,"abhdc");
            hm.remove(3);
            hm.put(5,"coco");
            Set s=hm.keySet();
            Iterator ite=s.iterator();
            while(true){
                if(false==ite.hasNext()){
                break;
            }
           // String key=(String)ite.next();
            Integer  key=(Integer)ite.next();
            //int value=(Integer)hm.get(key);
            String value=(String)hm.get(key);
            System.out.println(key+"-"+value);
            }
            
            }
    }
    大家调试还真够快,
      

  4.   

    还是不行啊总是提示: MyHashMap.java使用了未经检查或不安全的操作。
      

  5.   

    你用的是1.5以上的JDK,你应该报的是警告不是错误
    可以参考一下集合和泛型的章节,前段时间刚刚整理的:
    http://blog.csdn.net/silentbalanceyh/archive/2009/09/24/4587371.aspx
      

  6.   

    HashMap< Integer , String > hm = new HashMap< Integer , String >();
      

  7.   

    是泛型的警告,真正的问题就像楼上说的,颠倒了key和value