我正在尝试将另一列数据添加到我的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数组全部[sr.length + 1] [],最后一列数据是d2。 两个数组都有相同的行数。
三江源
答案 0 :(得分: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]);
}
答案 1 :(得分:0)
使用数组无法完成。唯一的方法是创建一个大小为n + 1或更大的新数组,并复制旧数组中的所有值。 例如:
String[][] sr2 = Arrays.copyOf(sr,sr.length + 1);
sr2[sr2.length-1]=d2;
如果需要经常添加新列,请尝试使用列表(ArrayList或链接列表)