我正在循环浏览一些数据,每步创建一个ArrayList<ArrayList<Cell>>
。每个Cell
类都会存储row
和col
(以及其他内容)。
我的问题是,当我之后调查listOfCells
时,每个Cell
对象都有相同的行(myData
的最后一行。这只发生在row
,列应该是它们应该的(也就是说,它们本身是唯一的。)据我所知,row
正在递增,但是当它确实增加时,它会改变row
中listOfCells
的所有值。 {1}}。
我不知道造成这种情况的原因。
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
Class 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;
}
答案 0 :(得分:6)
您的所有行都是相同的ArrayList<Cell>
因此,它们都包含相同的细胞。
您需要为每一行创建new ArrayList<Cell>()
。