0

我正在尝试将另一列数据添加到二维数组的末尾,但无法使其正常工作。任何帮助都会很棒。这就是我到目前为止所拥有的。

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。两个数组的行数相同。

谢谢你

4

2 回答 2

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]);
}
于 2013-10-14T10:22:58.197 回答
0

它不能使用数组来完成。唯一的方法是创建一个大小为 n+1 或更大的新数组,并从旧数组中复制所有值。例如:

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

尝试使用列表(如果您需要经常添加新列,则使用 ArrayList 或链接列表)

于 2013-10-14T10:24:30.347 回答