大神帮我解答一下,萌新刚入JAVA不久,感激
这句正确HashMap<String,String> hashMap=new HashMap()
for (Map.Entry en:hashMap.entrySet())下面这句为什么不加<String,String>for循环会报错呢?HashMap hashMap=new HashMap()
for (Map.Entry en:hashMap.entrySet())

解决方案 »

  1.   

    hashMap.entrySet()返回的不就是Map.Entry的集合吗?为什么hashMap要为泛型呢
      

  2.   

    早上好了你再悟悟,,,你迷了吧
    HashMap hashMap = new HashMap();
    for (Object o : hashMap.entrySet()) {
    Map.Entry en = (Map.Entry) o;
    }
      

  3.   

    这个我知道,但是我不理解为什么给hashmap加上泛型循环就不会错
      

  4.   

    因为你第一个定义的时候用了泛型,HashMap<String,String> hashMap=new HashMap()
    有泛型约束,所以你循环的时候也要用泛型,这是为了确保集合里的元素必须符合泛型
    你第二个没用泛型,没有泛型约束,集合里是什么类型都可以,所以循环也不需要用泛型
      

  5.   

    明白了,你的意思是Map.Entry en本身是泛型,所以hashmap要循环的话必须设置成泛型对吗?
      

  6.   

    是的,因为范型限定了只能是<String, String>