...
HashMap result = new HashMap();
result.put(new Integer(1),new Integer(2));
...
这里解析Hashmap
Iterator keyIter = retMap.keySet().iterator();
        while (keyIter.hasNext()) {  //这里还是为TRUE的
         Map.Entry entry = (Map.Entry)keyIter.next();//为什么这里抛NoSuchElementException异常不知道什么原因,如何修改?

解决方案 »

  1.   


    keyIter.next();//获取Map的下一个key值//获取对应的value用map.get(key);
      

  2.   

    越界
    for (int i = 0; keyIter.hasNext(); i++) {
         Map.Entry entry = (Map.Entry)keyIter.next();
    }
      

  3.   


    HashMap result = new HashMap();
    result.put(new Integer(1),new Integer(2));
    ...
    这里解析Hashmap
    for(Map.entry e: result.getEntry()){
         Integer key = e.getKey();
         Integer value = e.getValue();
    }
      

  4.   


    同意楼上的,对了楼主retMap这个在哪儿定义的啊
      

  5.   

    谢谢 是没有对应如果我写成这样
    Iterator iter = map.entrySet().iterator(); 
    while(){
        Map.Entry entry = (Map.Entry) iter.next();
    }
    这样也是遍历KEY的吗,为什么会有个Map.Entry的变量?
      

  6.   

    lz的iterator是keySet的啊,Map.Entry是指(key,value)的集合,肯定不可能强制转换啊!
    可以这样写:
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Map map = new HashMap();
    map.put(new Integer(1), new Integer(2));

    Iterator i = map.keySet().iterator();
    while(i.hasNext()){
        int key = (Integer)i.next();//这里,你的key是Integer不是Map.Entry啊
        System.out.println("key:"+key+" value:"+map.get(key));
    }
        }
    输出:key:1 value:2
      

  7.   

    谢谢  也看了JDK,entrySet是个(key,value)映射关系的集合
    但还是有点疑惑,entrySet是不是就是HASHMAP自身的内部变量啊,似乎遍历keySet就能遍历出所有的信息,还弄出个entrySet干嘛?
    呵呵  就此疑问  马上结贴
      

  8.   

    遍历性能似乎不一样,entrySet 的遍历性能好点,其他的似乎与HASHMAP的基类实现有关
      

  9.   

    你的Entry是一个键值对的,而你的keySet是一个Set类型的,这样的强制转换会出错的,好好的看看EntrySet和Map.keySet();
      

  10.   

    如果说没有next()方法的话,最好看看你导的包是哪个包,Iterator迭代器在很多包中都有,不同的包,肯定就不一样了,这里的Iterator是java.util里的.