2015-11-06 83 views
0

我有一個HashMap,它不允許我在散列映射上使用getOrDefault方法。這裏是我的代碼:不能在正確的泛型類型中使用正確的值

public static HashMap<String, Integer> getInputWords(String location) { 
    HashMap<String, Integer> wordCount = new HashMap<String, Integer>(); 
    try { 
     FileReader fReader = new FileReader(location); 
     BufferedReader bFReader = new BufferedReader(fReader); 
     String line = bFReader.readLine(); 
     while(line != null) { 
      String[] strs = line.split(" "); 
      for(String tmp : strs) { 
       wordCount.put(tmp.toLowerCase(), getOrDefault(tmp.toLowerCase(), Integer.valueOf(0)) + 1); //error on getOrDefault method. 
      } 
      line = bFReader.readLine(); 
     } 
     bFReader.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     return null; 
    } 
    return wordCount; 
} 

的方法是給我的一個錯誤:

的方法getOrDefault(字符串,整數)是未定義的類型Main07

(Main07是我的課)。

+2

我們需要查看您的getOrDefault方法才能回答您的問題。 –

+0

你的getOrDefault方法在哪裏?如果此方法不存在,那麼肯定會出現錯誤消息。 – Porcelain

+0

這是該方法,它是HashMap類的一部分.V getOrDefault(Object key,V defaultValue) 返回指定鍵映射到的值,如果此映射不包含鍵映射,則返回defaultValue。 – apalapa

回答

1

getOrDefault()是一個HashMap方法,所以請撥打您的HashMap

wordCount.getOrDefault(tmp.toLowerCase(), Integer.valueOf(0)) 
+0

我不敢相信我沒有看到,謝謝你指出來......我花了好半個小時,問了一個朋友關於它的消息......過了很長的一天大聲笑 – apalapa