[英]Adding single array column to the end of a 2d array. Java
我試圖將另一列數據添加到2d數組的末尾,但無法使其正常工作。 任何幫助都會很棒。 到目前為止,這就是我所擁有的。
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[]
我想要的結果是2d數組all [sr.length +1] [],最后一列數據為d2。 兩個數組的行數相同。
謝謝
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]);
}
它不能使用數組來完成。 唯一的方法是創建一個大小為n + 1或更大的新數組,並復制舊數組中的所有值。 例如:
String[][] sr2 = Arrays.copyOf(sr,sr.length + 1);
sr2[sr2.length-1]=d2;
嘗試使用列表(如果需要頻繁添加新列,則使用ArrayList或Linked list)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.