2012-06-12 53 views
1

我想分配的雙重[]列出的Hashmap值,但它拋出一個錯誤:如何分配的HashMap的ArrayList <字符串,雙[]>列出

"The method add(Double) in the type List is not applicable for the arguments (Double[])"

ArrayList<HashMap<String, Double[]>> arl = (ArrayList<HashMap<String, Double[]>>) pd.getArrayList(); 

List<Double> empid = new ArrayList<Double>(); 
Iterator itr = arl.iterator(); 

while (itr.hasNext()) { 
    HashMap<String, Double[]> map = (HashMap<String, Double[]>) itr.next(); 
    empid.add(map.get("id"))); 
} 

如何我可以將Double[]投到Double.Request嗎?

回答

0

你彷彿是在尋找是這一行:

empid.add(map.get("id"))); 

改成這樣:

empid.addAll(Arrays.asList(map.get("id")))); 

它會將Double的數組轉換爲012的和addAll會將結果集合中的所有項目添加到您的目標集合empid

+0

嗨感謝這一個也可以,但我的主要問題仍然沒有解決。我將它作爲新的問題發佈。 –

0

我認爲你有比鑄造更大的問題。你有一組Doubles,你最終想要一個Double

這不是鑄造問題,而是你如何操縱那些Doubles只給你一個問題。

也許你真正想要的是遍歷該數組,然後依次將每個Double添加到列表中。但這確實是一個需求問題。

+0

感謝您的快速響應是的,你是對的,我想這樣做,因爲我使用這個列表數據在android中使用achartengine構建圖表數據,內置庫接受列表類型。所以我面臨問題轉換這個數據到List。 –

0

在你提供的代碼,您必須通過

List<Double[]> empid = new ArrayList<Double[]>(); 

改變

List<Double> empid = new ArrayList<Double>(); 

,使其編譯。但我想這不是你想要達到的。那你想做什麼? :

 ArrayList<HashMap<String, Double[]>> arl = (ArrayList<HashMap<String, Double[]>>) pd.getArrayList(); 
     List<Double> empid = new ArrayList<Double>(); 
     Iterator itr = arl.iterator(); 
     while (itr.hasNext()) { 
      HashMap<String, Double[]> map = (HashMap<String, Double[]>) itr.next(); 
      empid.addAll(Arrays.asList(map.get("id"))); 
     } 
+0

嗨Yanflea 感謝您的及時迴應,是的,我做到了這一點, ,但它創造了一個數組,每個項目的價值exisiting,我不希望發生,因爲內置庫訪問列表類型在achartengine爲Android圖表。 –

0

的問題是map.get("id")將返回Double[]empidDouble類型。

你只需要改變

List<Double> empid = new ArrayList<Double>(); 

List<Double[]> empid = new ArrayList<Double[]>(); 
+0

嗨Adarsh,如果我這樣做,它是爲每個條目創建一個數組,我如何將Arraylist中的所有條目添加到單個arrayList中,而無需爲每個條目創建單獨的數組。 –

0

您正在試圖插入式雙列表中的數組,其中的元素是「單」雙打。

插入在EMPID列表中的數組,你應該聲明它是這樣的:

List<Double[]> empid = new ArrayList<Double[]>(); 

然後當你調用添加此名單上,你可以通過Double類型[]的參數。

+0

如果我使用上面,我想將所有哈希值添加到單個數組中,其中爲每個值創建一個數組,而我想將所有值添加到單個數組中,我該如何實現這一點。 –

1

如果轉換到List<Double>是你唯一的選擇,試試這個:

ArrayList<HashMap<String, Double[]>> arl = (ArrayList<HashMap<String, Double[]>>) pd.getArrayList(); 

List<Double> empid = new ArrayList<Double>(); 
Iterator itr = arl.iterator(); 

while (itr.hasNext()) { 
    HashMap<String, Double[]> map = (HashMap<String, Double[]>) itr.next(); 
    for (Double d : map.get("id") { 
     empid.add(d); 
    } 

} 
+0

謝謝這個工程,但它似乎不解決我的問題在後期階段。但仍然感謝您解決這個問題 –

相關問題