簡體   English   中英

將單個數組列添加到2d數組的末尾。 爪哇

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM