我有一个单元格的正方形网格,并且程序中的所有单元格都在每个外部arraylist元素中。我在每个元素中只占其中的一部分

时间:2019-04-24 15:30:52

标签: java arrays arraylist multidimensional-array

因此在我的程序中,我有一个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。

编辑:找到解决方案。取出多余的代码。

0 个答案:

没有答案