gpt4 book ai didi

Java - 访问ArrayList中对象的原始类型

转载 作者:行者123 更新时间:2023-12-01 09:03:07 25 4
gpt4 key购买 nike

我正在使用双数组,需要能够计算类 Tile 中一个图 block 的周围 <8 个邻居。因为我想单独了解他们,Tile包含 8 个接受 Tile 的 setter 方法分别作为每个方向的参数。因此,首先我迭代给定图 block 的邻居并将它们添加到 ArrayList 。现在我想将这些元素传递到 setter 方法中,但他们不会接受它,因为它不是 Tile但是一个List<Tile>我该如何解决这个问题?我尝试更改 setter-Method 以期望列表,但这并没有改变任何内容。或者我是否需要重组我的整个方法?为此,我正在寻找一个肯定有所有 8 个邻居的图 block ,一旦这总体有效,我需要考虑捕获那些没有那么多邻居的边缘人。

private void calculateNeighbors (int x, int y){
System.out.print("The neighbors of " + getTile(x,y));

List<Tile> neighbors = new ArrayList<>();

int[] coordinates = new int[]{
-1,-1,
-1, 0,
-1, 1,
0,-1,
0, 1,
1,-1,
1, 0,
1, 1
};

for (int i = 0; i < coordinates.length; i++) {
int columnX = coordinates[i];
int rowY = coordinates[++i];

int nextX = x + columnX;
int nextY = y + rowY;

if (nextX >= 0 && nextX < getListOfTiles().length
&& nextY >= 0 && nextY < getListOfTiles().length) {
neighbors.add(getTile(nextX, nextY));
}
}
//this here isn't working
tile.setTopLeft(neighbors[0]);
tile.setTop(neighbors[1]);
//etc
}
}

最佳答案

您需要使用get(int)列表的方法,用于根据索引访问列表中的对象。

tile.setTopLeft(neighbors.get(0));
tile.setTop(neighbors.get(1));

下标运算符是当你有一个数组时。

关于Java - 访问ArrayList中对象的原始类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41520850/

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