3

我正在遍历一些数据,ArrayList<ArrayList<Cell>>为每个步骤创建一个。每个Cell类都存储一个rowcol(除其他外)。

我的问题是,当我listOfCells后来调查时,每个Cell对象都有相同的行(最后一行myData。这只发生row在正确递增,但是当它这样做时,它会更改my 中row的所有值。rowlistOfCells

我不知道是什么原因造成的。

创建Cell

Cell cell = null;
int row = 0;
int col = 0;
ArrayList<Cell> tmpCellList = new ArrayList<Cell>();
ArrayList<ArrayList<Cell>> listOfCells = new ArrayList<ArrayList<Cell>>();    

for (ArrayList<double> eachRow : myData) {
    row++;
    for (double eachCol : eachRow) {
        col++;
        cell = new Cell();
        cell.setCol(col);
        cell.setRow(row);
        cell.setValue(eachCol);
        tmpCellList.add(cell);
    }
    listOfCells.add(row-1, tmpCellList);
 }

Cell班级

public class Cell {
    private int row;
    private int col;
    private double value;
    
public void setRow(int rowIn)   {
    this.row = rowIn;
}
    
public int getRow() {
    return row;
}

public void setCol(int colIn)   {
    this.col = colIn;
}

public int getCol() {
    return col;
}

    public void setValue(double val) {
            this.value = val;
    }

    public double getValue() {
            return value;
    }
4

1 回答 1

6

你所有的行都是一样的ArrayList<Cell>
因此,它们都包含相同的单元格。

您需要new ArrayList<Cell>()为每一行创建一个。

于 2012-08-01T14:05:29.760 回答