Java 如何将类的实例添加到二维ArrayList
我有一个问题,我需要创建一个特定大小的网格,可以由用户定义,否则它默认为7。网格上的每个单元格本身都可以包含项,因此在某种程度上这是一个3D ArrayList。我决定创建一个网格类,它是一个2D ArrayList,然后有一个单独的类,叫做Cell,它只是一个ArrayList。因此,我们的目标是拥有一个大小为nxn的2D ArrayList,它将拥有n^2个Cell类实例。但是,我在遍历我创建的ArrayList时遇到了问题,我开始认为我从一开始就把2D ArrayList弄错了。本质上,我试图获得帮助的是如何实例化2D ArrayList并用Cell的所有实例填充它Java 如何将类的实例添加到二维ArrayList,java,arraylist,Java,Arraylist,我有一个问题,我需要创建一个特定大小的网格,可以由用户定义,否则它默认为7。网格上的每个单元格本身都可以包含项,因此在某种程度上这是一个3D ArrayList。我决定创建一个网格类,它是一个2D ArrayList,然后有一个单独的类,叫做Cell,它只是一个ArrayList。因此,我们的目标是拥有一个大小为nxn的2D ArrayList,它将拥有n^2个Cell类实例。但是,我在遍历我创建的ArrayList时遇到了问题,我开始认为我从一开始就把2D ArrayList弄错了。本质上,我
import java.util.ArrayList;
class Cell {
private ArrayList contents = new ArrayList();
}
class Grid {
public ArrayList<ArrayList> grid = new ArrayList<ArrayList>();
public Grid () {
for (Object array : this.grid){
ArrayList new_array = (ArrayList) array;
for (int i=0; i<7;i++){
this.grid.add(new Cell());
}
}
}
public Grid (int size) {
for (Object array : this.grid){
ArrayList new_array = (ArrayList) array;
for(int i=0; i < size; i++){
this.grid.add(new Cell());
}
}
}
}
import java.util.ArrayList;
类单元{
private ArrayList contents=new ArrayList();
}
类网格{
public ArrayList grid=new ArrayList();
公共电网(){
for(对象数组:this.grid){
ArrayList新数组=(ArrayList)数组;
对于(inti=0;i我认为您没有初始化网格。
如果要生成二维网格,应在向行添加项目之前生成行,并应指定内部arraylist的类型
class Cell {
private ArrayList contents = new ArrayList();
}
class Grid {
public ArrayList<ArrayList<Cell>> grid = new ArrayList<ArrayList<Cell>>();
//Generate 7 by 7 grid
public Grid() {
for (int i = 0; i < 7; i++) {
ArrayList<Cell> innerList = new ArrayList<Cell>();
for (int j = 0; j < 7; j++) {
innerList.add(new Cell());
}
grid.add(innerList);
}
}
//Generate size by size grid
public Grid(int size) {
for (int i = 0; i < size; i++) {
ArrayList<Cell> innerList = new ArrayList<Cell>();
for (int j = 0; j < size; j++) {
innerList.add(new Cell());
}
grid.add(innerList);
}
}
}
类单元{
private ArrayList contents=new ArrayList();
}
类网格{
public ArrayList grid=new ArrayList();
//生成7乘7的网格
公共电网(){
对于(int i=0;i<7;i++){
ArrayList innerList=新的ArrayList();
对于(int j=0;j<7;j++){
添加(新单元格());
}
grid.add(innerList);
}
}
//按大小网格生成大小
公共网格(整数大小){
对于(int i=0;i