尝试将额外的列添加到2D字符串矩阵时遇到重复问题。
这是我的代码:
List<String[]> rowValues; // the matrix, #of rows not
// important, #of columns is 7]
String[] columnValues = new String[8]; // would contain the old row
// data plus one extra String
// LOOP ON ROWS
for(int i = 0; i < rowValues.size(); i++) {
// LOOP ON COLUMNS
for (int j = 0; j < rowValues.get(i).length; j++) {
columnValues[j] = rowValues.get(i)[j];
}
columnValues[7] = "ENTRY" + i;
rowValues.set(i, columnValues);
System.out.println(rowValues.get(i)[0]); // last element in each iteration
}
// END LOOPS
System.out.println(rowValues.get(0)[0]); // element in 0-0 is
// the same as last row-0
我的问题是所有行都将包含最后一行的数据,以及标记为的额外列:
“ ENTRYX”
例如,
[hi, im, haithem]
[this, is, hard]
[to, figure, out]
将会,
[to, figure, out, ENTRY2]
[to, figure, out, ENTRY2]
[to, figure, out, ENTRY2]
最佳答案
您永远不会更改columnValues
指向新的String[]
,因此实际上rowValues
包含对同一对象的多个引用。
尝试在外部columnValues
循环内移动for
的定义,以便为每次迭代创建一个新的String[]
。