你的map中key的类型是string吗?

解决方案 »

  1.   

    呵呵~~~谢谢啊!!
    map.put(Integer.toString(i),new Integer(this.Free(plans[i], month, freeExtraTime)));
    对HashMap不熟悉,没注意到这个问题。
    程序也修改了一下。
    调试的时候还发现,如果直接从map中remove,会报错。
    所以,要用iter.remove();  public int cheapestValue(HashMap map)throws Exception{
         
         Iterator iter = map.keySet().iterator();
         String tmpKey = "0";
         Integer tmpV = (Integer)map.get("0");
         int tmpValue = tmpV.intValue();      while(iter.hasNext()){
             String key = (String)iter.next();
             Integer V = (Integer)map.get(key);
             int Value = V.intValue();
             if(Value < tmpValue){
                 tmpValue = Value;
                 tmpKey = key;
                 iter.remove();
             }else{
                 iter.remove();
             }
         }
         return Integer.parseInt(tmpKey);
     }