2013-10-14 168 views
0

我想添加另一列的數據到我的2D數組的末尾,但不能使它工作。 任何幫助將是偉大的。這是我迄今爲止所擁有的。將單個數組列添加到2d數組的末尾。 Java

double[] d = a.Total(); 

String[][] sr = a2.records(); 
String[] d2 = new String[d.length]; 

for (int i = 0; i < d.length; i++) 
d2[i] = String.valueOf(d[i]);  // converts double[] into string[] 

我期望的結果是一個二維數組all [sr.length + 1] [],最後一列數據是d2。 兩個數組的行數相同。

三江源

+0

有什麼問題了嗎? – Maroun

+0

我想要一個新的2d數組,並使用與2d數組相同的數據+額外的數據列(d2) – Michael

+0

爲什麼不使用ArrayList或Vector? –

回答

1
String[][] sr = a2.records(); 

當你這樣做,你sr陣列與一個固定的無創建。從ar.records()返回的行和列。數組在本質上不是動態的,因此一旦創建,就不能向其中添加額外的行/列。因此,您需要創建一個新陣列(具有更高的行數/列數),並將sr數組中的所有值複製到該數組中,然後將新列添加到該列中。

另一個更好的解決方案是使用ArrayList而不是數組,因爲它們是動態的(您可以在需要時添加更新的元素)。

編輯:你可以做這樣的事情,從舊陣列到新陣列的複製您的數據和d陣列添加爲新行

String[][] newsr = Arrays.copyOf(sr, sr.length + 1); // New array with row size of old array + 1 

newsr[sr.length] = new String[sr.length]; // Initializing the new row 

// Copying data from d array to the newsr array 
for (int i = 0; i < sr.length; i++) { 
    newsr[sr.length][i] = String.valueOf(d[i]); 
} 
+0

我想創建一個新的二維數組。 – Michael

+0

@Michael - 檢查我的答案中的編輯! – SudoRahul

0

使用數組它不能這樣做。唯一的方法是創建一個大小爲n + 1或更大的新數組並複製舊數組中的所有值。 例如:

String[][] sr2 = Arrays.copyOf(sr,sr.length + 1); 
sr2[sr2.length-1]=d2; 

嘗試使用列表(ArrayList的或鏈接列表,如果你需要經常添加新列)

+0

是的我想複製兩個數組的數據並將它們合併到一個新的二維數組中。 – Michael

相關問題