2013-05-31 53 views
3

的,我需要我的列表轉換:如何獲得一個數組[]我的鏈表

List<Double> listFoo = new LinkedList<Double>(); 

到雙A排列。所以,我想:

double[] foo = listFoo.toArray(); 

但我得到的錯誤:

Type mismatch: cannot convert from Object[] to double[] 

我怎樣才能避免這種情況?我可以遍歷列表並逐步創建數組,但我不想這樣做。

+1

http://stackoverflow.com/questions/960431/how-to-convert-listinteger-to-int-in-java –

+0

http://stackoverflow.com/questions/395030/quick-java-question-casting -an-array-of-objects-into-an-array-of-my-cl-cl –

回答

3

您不能使用標準List類的toArray()方法創建基元數組。您可以做的最好做法是使用通用方法toArray(T[])製作Double []。

Double[] foo = listFoo.toArray(new Double[ listFoo.size() ]); 

一個簡單的方法來使一個雙[]是使用Guava's Doubles class

double[] foo = Doubles.toArray(listFoo); 
3

你需要做的,通用的一個

Double[] foo = listFoo.toArray(new Double[listFoo.size()]); 

這將是最快的方式。

使用new Double[listFoo.size()](具有數組大小),您將重用該對象(通常用於對方法toArray進行通用調用)。

+0

謝謝你這是工作:) – user2440550

1

它應該工作,如果您使foo一個Doubles而不是doubles(一個是一個類,另一個是原始類型)的數組。

相關問題