gpt4 book ai didi

Java 2 昏暗数组类

转载 作者:行者123 更新时间:2023-11-29 05:27:16 25 4
gpt4 key购买 nike

我正在尝试创建一个类,该类创建一个已定义的二维数组列表,并具有添加对象和删除给定 x/y 对象的方法。将有另一个类将添加和删除对象,并检查空间是否打开。我找到了一个例子,但它似乎对我的需求来说太复杂了,我不想复制他们的工作,因为我想学习一些东西。我没有使用 ArrayList 的经验,但我已经阅读了 Java 文档并理解了它的要点。这是我正在查看的示例的链接(这是第一篇文章):http://www.javaprogrammingforums.com/java-programming-tutorials/696-multi-dimension-arraylist-example.html

我对二维数组列表的理解是,它只是一个引用另一个 ArrayList 的 ArrayList。就像我之前说的,我只想要一个类来处理所有乱七八糟的东西以及添加和删除对象。这就是我所拥有的;我觉得这是完全错误的,因为当我尝试将一个列表添加到另一个列表时,我收到一条错误消息“无法在原始类型 int 上调用 get(int)”。如果有人能帮助我走上正轨,我将不胜感激。这是我到目前为止所拥有的:

public class BoardMap { 
private int numOfCols;
private int numOfRows;`

private ArrayList<GameObject> cols = new ArrayList<GameObject>(numOfCols);
private ArrayList<GameObject> rows = new ArrayList<GameObject>(numOfRows);

@SuppressWarnings("unchecked")
BoardMap(int cols, int rows){
numOfCols = cols;
numOfRows = rows;

for(int i = 0; i < numOfCols; i++){
for(int j = 0; j < numOfRows; j++){
((List<GameObject>) cols.get(i)).add(rows.get(j));
}
}
}

@SuppressWarnings("unchecked")
public void addObject(GameObject o, int x, int y){
((List<GameObject>) cols.get(x)).add(y, o);
}

public void removeObject(GameObject o, int x, int y){

}

public boolean occupiedSpace(int x, int y){
return false;
}
}

最佳答案

板可以看作是行列表,其中每一行都是一个单元格列表。您的代码使用两个单元格列表。它应该使用单个单元格列表列表:

List<List<GameObject>> board = new ArrayList<>();

List<GameObject> firstRow = new ArrayList<>();
firstRow.add(new GameObject()); // first cell of first row
firstRow.add(new GameObject()); // second cell of first row
...
board.add(firstRow);

List<GameObject> secondRow = new ArrayList<>();
secondRow.add(new GameObject()); // first cell of second row
secondRow.add(new GameObject()); // second cell of second row
...
board.add(secondRow);
...

当然,您可以使用嵌套循环完成所有这些步骤:

List<List<GameObject>> board = new ArrayList<>();
for (int r = 0; r < rowCount; r++) {
List<GameObject> row = new ArrayList<>();
for (int c = 0; c < columnCount; c++) {
GameObject cell = new GameObject();
row.add(cell);
}
board.add(row);
}

关于Java 2 昏暗数组类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22262642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com