2016-10-06 50 views
2

我已經設置了以下的ArrayList:如何將整數的ArrayList轉換爲double []?

ArrayList<Integer> myIntegerValues = new ArrayList<Integer>(); 
myIntegerValues.add(0); 
myIntegerValues.add(1); 
myIntegerValues.add(0); 
myIntegerValues.add(1); 

我想將此轉換爲double[]和運行這樣

double[] myList = {1.9, 2.9, 3.4, 3.5, 2.9, 3.8, 10.2};   
for (int i = 0; i < myList.length; i++) { 
    System.out.println(myList[i] + " "); 
} 

一段簡單的代碼如何轉換的ArrayListdouble[]

我發現這個鏈接 How to cast from List<Double> to double[] in Java? 但我不確定這是否回答我的問題。

+0

你想將1轉換爲1.9或1.3或類似的東西嗎?除非你給出它,否則任何人都知道實際價值是多少?你可以雖然將其從1轉換爲1.0 – dosdebug

+0

你有看看這個:http://stackoverflow.com/questions/718554/how-to-convert-an-arraylist-containing-integers-to-primitive-int-數組?嘗試添加一個轉換 – acornagl

+0

我使用的java統計包需要'double []'作爲輸入。 ArrayList不作爲輸入。所以我試圖轉換我的ArrayList中的數字,以便我可以在統計包數據結構中使用它們。 –

回答

0

最好的事情就是創建匹配大小的數組,然後遍歷條目,鑄造,當您去。

double[] myList = new double[myIntegerValues.size()]; 
for (int i=0; i<myIntegerValues.size(); i++) { 
    myList[i] = (double) myIntegerValues.get(i); 
} 

請注意,儘管我可以使用迭代器,但使用索引會使一對一關係清晰。

0

由於數組不是動態的,因此首先聲明一個ArrayList大小的雙重陣列。

double[] doublesList = new double[myIntegerValues.size()]; 

然後依次通過,並轉換爲做每一個

int x = 0; 
for(Integer i : myIntegerValues){ 
    doublesList[x] = (double)i; 
    x++; 
} 
+0

輝煌!感謝冠軍 –

4
double[] array = myIntegerValues.stream().mapToDouble(i -> (double) i).toArray(); 
+1

也可以使用'Integer :: doubleValue'而不是lambda。 –

+0

@JornVernee,但是,對於OP,它可能會稍微不明顯 – Andrew

+1

aw不公平,我喜歡成爲拋出Java 8答案的人。 – Rogue

相關問題