我有一個Arraylist,我想將其轉換爲數組。我正在使用這個:將數組列表轉換爲數組
double[] array = new double[list.size()];
double [] array = list.toArray(new double[list.size()]);
但是,它不起作用。任何想法如何解決它?提前致謝。 看來它返回的對象。
我有一個Arraylist,我想將其轉換爲數組。我正在使用這個:將數組列表轉換爲數組
double[] array = new double[list.size()];
double [] array = list.toArray(new double[list.size()]);
但是,它不起作用。任何想法如何解決它?提前致謝。 看來它返回的對象。
用於將List<Double>
爲double[]
,或任何地方你需要原始類型,除了做傳統的for
循環(或者調用一個傳統的for
循環的第三方庫方法,比如Guava的Doubles.toArray
)。
double[] array = new double[list.size()];
for (int i = 0; i < list.size(); i++) {
array[i] = list.get(i);
}
或者,你可以做
Double[] array = list.toArray(new Double[list.size()]);
這將讓你盒裝Double
s,這可能足以反正你的目的的陣列。
它應該是:
Double[] array = new Double[list.size()];
list.toArray(array); // fill the array
,如果你想圖元的數組,遍歷每個元素的數組:
double[] array = new double[list.size()];
for(int i = 0; i < list.size(); i++) array[i] = list.get(i).doubleValue();
你試過這個嗎?仿製藥的工作方式並不像這樣。 –
@LouisWasserman你是對的,我錯過了:) ..更新了我的答案。 –
列表不能包含原始類型。假設它包含Double
情況下,唯一的辦法就是遍歷列表和拆箱的每個元素(希望有一個列表中沒有空):
double[] array = new double[list.size()];
int i = 0;
for (Double d : list) {
array[i] = d;
i++;
}
使用對象不加倍原始的雙:
ArrayList<Double> list = new ArrayList<Double>();
...add data
Double[] array=list.toArray(new Double[list.size()]);
我懷疑這是提問者的目標是什麼。他們可能希望對那些'雙打'作爲原語執行操作。 –
StringBuffer strBuffer = new StringBuffer();
for(Object o:list){
strBuffer.append(o);
}
double []x = new double[]{strBuffer.toString()};
我認爲這應該工作
此答案無效。這和你的[其他答案在這裏]是一樣的(http://stackoverflow.com/a/16336520/922184)。請確保您的答案在發佈之前真正起作用。 – Mysticial
那麼,是你的名單?你知道集合只能包含原語的包裝嗎? – skuntsel