2015-06-05 52 views
-4

如何動態添加到double []? 我應該創建一個列表...如何動態添加到double []?

List<double[]> y = new ArrayList<double[]>(); 
y.add(new double[15]);  
y.add(new double[20]); 

,並轉換列表翻番[]?

回答

0

使用List<Double>List<Doulble> list = new ArrayList<Double>(); 添加任何數量的列表,然後將列表轉換爲數組: Double[] asArray = list.toArray(new Double[list.size()]);

+0

我case.Thanks大家減分也無濟於事:( – Arnes

0

我不能確定你要完成什麼,但讓我們看看我可以闡明一些事情。

ArrayList的工作方式類似於將數據添加到數組時會自動增大的數組。所以ArrayList<Double>double[]非常相似,只是在創建後不能更改double[]的大小。

例如,double[] list = new double[10];會創建一個數組來保存雙打,但它永遠不能保存超過10個項目。另一方面,List<Double> list = new ArrayList<>();可以容納10個項目,它可以容納100個項目,並且它可以容納數百萬個項目,全部都不需要重新創建列表。

讓我們看看動態擴展雙打的數組:

// Create the array 
double[] list = new double[2]; 
list[0] = 1.1; 
list[1] = 2.2; 
// Copy the array with space for another entry 
list = Arrays.copyOf(list, 3); 
// Add another entry to the newly expanded array 
list[3] = 3.3; 

要保持比數組更多的值每一次有能力,你需要創建一個新的數組,並複製值從一個到另一個(這是Arrays.copyOf(...)所做的)。

使用ArrayList<Double>通過在內部處理所有這些廢話簡化了事情,因此您不必擔心維護一個正確大小的數組。

List<Double> list = new ArrayList<Double>(); 
list.add(1.1); 
list.add(2.2); 
list.add(3.3); 

您可以繼續添加,而不用擔心您的ArrayList的實際尺寸是多少。您可以用ArrayList<Double>代替double[]。如果你需要把你的ArrayList<Double>double[]無論出於何種原因,這是相當簡單的事情:

double[] array = new double[list.size()]; 
for (int i = 0; i < array.length; i++) { 
    array[i] = list.get(i); 
}