2015-11-11 61 views
2

我在Java以下this video約HashMap中。它有below code類型的HashMap不帶參數

// Create the HashMap 
HashMap<String,String> hm = new HashMap<String, String>(); 

// Put data 
hm.put("Katie", "Android, WordPress"); 
hm.put("Magda", "Facebook"); 
hm.put("Vanessa", "Tools"); 
hm.put("Ania", "Java"); 
hm.put("Ania", "JEE"); // !! Put another data under the same key, old value is overridden 

// HashMap iteration 
for (String key: hm.keySet()) 
    System.out.println(key+":"+hm.get(key)); 

所以我寫了我下面的代碼,用它來練習的HashMap(幾乎相同的代碼)

package hashmap; 
import java.util.*; 

public class HashMap { 

    public static void main(String[] args) { 

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

     hm.put("Katie", "Android, WordPress"); 
     hm.put("Magda", "Facebook"); 
     hm.put("Vanessa", "Tools"); 
     hm.put("Ania", "Java"); 
     hm.put("Ania", "JEE"); 

    } 
} 

但類沒有編譯報錯「類型的HashMap不帶參數「所以我尋找答案,我got this

答案的人說

兩個可能的錯誤:

您正在使用JDK 1.4

你進口別的東西比java.util.Map

於是我進口java.util.Map但NetBeans的給出了錯誤,說進口沒有用過。然後我java.util.*;但結果是一樣的。我不知道這是我的IDE故障的新手錯誤。

我的JDK 1.8和Netbeans 8.0.2在Windows 8.1

+1

NVM。您正在使用您班級的命名模糊HashMap。完全忽略了這一點。感謝@manouti – showp1984

回答

8

你命名你的HashMap被遮蔽的java.util.HashMap類。只需將其重命名爲其他內容。

+2

或者使用'創建地圖時java.util.HashMap':'新的java.util.HashMap ();',但不建議這樣做 –

+0

@蓋爾的確但更好的做法是重新命名。 – manouti

+0

得到它提前感謝 –

2

public class HashMap定製類隱藏java.util.HashMap,而您的自定義HashMap不是通用的,所以new HashMap<String, String>()不適用於你自定義的類。

+0

提前知道了謝謝:) –

0

我建議不要使用與HashMap相同的類名稱,因爲它是Java中的一種映射技術實現,並且還使用Map.entry接口作爲每個循環中的對象。我希望下面的代碼能夠幫助有新的HashMap的人。

import java.util.*; 
public class QueQue { 
public static void main(String[] args) { 
    HashMap<String, Integer> hm = new HashMap<String, Integer>(); 
    hm.put("Peter", 10); 
    hm.put("Nancy", 8); 
    hm.put("Lily", 9); 

    for (Map.Entry<String, Integer> x : hm.entrySet())//entrySet()=Returns a set of all the entries in the map as Map.Entry objects. 
    { 
     System.out.println(" The String Value in Hashmap is " + x.getKey()); 
     System.out.println(" The Integer Value in Hashmap is " +x.getValue()); 
    } 
} 
     } 
相關問題