gpt4 book ai didi

java - 创建对象并将它们放入二维数组中

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:41 25 4
gpt4 key购买 nike

我在处理 2D 数组和插入带有 3 个参数(int x、int y、int cost)的对象时遇到困难这是搜索算法的开始,诚然,我的开始非常糟糕。我将粘贴下面的代码。当我尝试运行此代码时,我收到编译错误,我非常确定它很简单,但我无法解决它。我打算使用 Map2 类来实现大部分算法,例如排序等。

 import java.util.Arrays;


public class Map2 {

public static void main (String args[]){

Points[][] grid = new Points[4][4];

for(int i = 0; i < grid.length; i++){
for(int j = 0; j < grid.length; j++){
grid[i][j] = new Points(i,j,1);
}


}
System.out.print(Arrays.deepToString(grid));

}
}

这个类是我的对象,它包含从一个位置移动到下一个位置的移动成本(下一步显然是确定邻居),是的,这是尝试创建工作 A 星算法的一部分。

 public class Points {
int x;
int y;
int movement_cost;

public Points(int iX, int iY, int cost){
x = iX;
y = iY;
movement_cost = cost;

}

public int getX(){
return x;
}
public int getY(){
return y;
}
public int getMovementCost(){
return movement_cost;
}
public void setX(int x){
this.x = x;
}
public void setY(int y){
this.y = y;
}
public void setMovementCost(int cost){
this.movement_cost = cost;
}
public String toString(){
return ""+getX()+ ""+getY()+""+getMovementCost();
}
}

这是编译后读出的控制台(内存中的3个地址空间)

    run:[[001, 011, 021, 031], [101, 111, 121, 131], 
[201, 211, 221, 231], [301, 311, 321, 331]]
BUILD SUCCESSFUL (total time: 2 seconds)

我的希望很简单,数组中的每个对象都将包含其在内存中坐标的引用,并包含移动成本,稍后将用于比较以确定下一个最佳位置(我稍后将实现诸如目标、开始之类的东西)

我的问题是:代码有什么问题吗?

我要提前致谢,无论谁回复您的回复,我们都将不胜感激

我的问题 V0.1 的当前修订:哇,非常感谢您的快速回复,我今天学到了一些新东西 ^^ Arrays.deepToString(grid));是一个我不知道的惊人工具,但是我仍然收到运行时错误。再次感谢您的回复,并再次感谢您的任何进一步回复:)。上面的代码已按照建议修改,但运行时错误仍然存​​在

最佳答案

您的代码有几个问题:

  • 您的嵌套循环假设数组是方形的(您将两个维度迭代为grid.length),
  • 在初始化每一行后打印整个数组,并且
  • 您错误地打印了数组(Java 数组在传递给 System.out.println 时不打印其内容)

如果你的矩阵确实总是正方形,那么第一项就可以了。通过将输出移到第二个嵌套循环之外,可以轻松修复第二项。

第三项是最难的。编写一个静态方法来获取二维数组,并使用两个嵌套循环逐个元素地打印它,这将是一个很好的练习。您还可以使用System.out.println(Arrays.deepToString(grid));如果您更愿意使用系统功能。

关于java - 创建对象并将它们放入二维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11270538/

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