2012-10-06 121 views
2

試圖將hashmap條目添加到linkedList,我得到"cannot find symbol"錯誤的add方法。Java:找不到符號

我:

import java.util.*; 
import java.io.*; 


class hash 
{ 
    public static void main(String[]args) 
    { 
     List<HashMap<String, String>> data = 
     new LinkedList<HashMap<String, String>>(); 

     Map<String, String> map = new HashMap<String, String>(); 
     map.put("name", "demo"); 
     map.put("fname", "fdemo"); 

     data.add(0, map); 

     String test = map.get("fname"); 
     String datatest = data.get(0).get("name"); 

     System.out.println(datatest); 

    } 

} 

有什麼不對?

+0

你可以發佈stacktrace嗎? – Fildor

+2

沒有編譯錯誤的堆棧跟蹤。 –

回答

3

將其更改爲Map而非HashMap

List<HashMap<String, String>> data = 
new LinkedList<HashMap<String, String>>(); 
4
List<HashMap<String, String>> data = 
     new LinkedList<HashMap<String, String>>(); 

上面的代碼應該是: -

List<Map<String, String>> data = 
     new LinkedList<Map<String, String>>(); 
1

,因爲你宣佈你的map作爲Map而不是作爲一個HashMap你還必須聲明你的data爲:

List<Map<String, String>> data = new LinkedList<Map<String, String>>(); 

你可以堅持你的名單聲明離子,如果你改變你的map

List<HashMap<String, String>> data = new LinkedList<HashMap<String, String>>(); 
HashMap<String, String> map = new HashMap<String, String>(); 

但更好的方法是,只要有可能只是使用接口,而不是在聲明中具體實施。