因此在我的程序中,我有一个2D的单元格网格,我有一个ArrayList,它存储称为“列”的单元格,而我有一个2D数组,它存储称为“行”的单元格的Array。事实是,我的ArrayList列的所有单元格都存储在每个行元素中。我不知道为什么要这么做。
\\JPanel class
public class Frame extends JPanel {
private ArrayList<Cell> columns;
private ArrayList<ArrayList<Cell>> rows;
private int cellLength;
private Color dead;
public Frame(){
rows=new ArrayList<>();
columns= new ArrayList<>();
this.setSize(new Dimension(900, 900));
this.cellLength=200;
this.dead=Color.BLACK;
createMap();
}
public void createMap(){
for(int columsi=0;columsi<getHeight()/cellLength;columsi++){
for(int rowsi=0;rowsi<getHeight()/cellLength;rowsi++){
Cell c=new Cell(rowsi*(cellLength+1),columsi*(cellLength+1),cellLength,false);
columns.add(c);
}
rows.add(columns);
}
System.out.println(rows.get(3).size());
}
}
我期望的是,每次外部循环迭代时,单元格的每个数组列表都会添加到每个行元素中,但是所有单元格最终都出现在所有行元素中,因此命令(row.get(3).size)
返回的总大小为16而我希望是4。
编辑:找到解决方案。取出多余的代码。