尝试将额外的列添加到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[]

09-28 02:34