2012-06-30 63 views
1

我很難與二維數組和插入帶有3個參數的對象(int x,int y,int cost) 這是搜索算法的開始,一個非常糟糕的開始。我將粘貼下面的代碼。當我嘗試運行這段代碼時,我收到了一個編譯錯誤,我很確定它很簡單,但我無法解決它。 的地圖2類我打算用於實現主本體的算法,如排序等對象創建並將它們放入二維數組

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的

當前版本: 哇好感謝您的快速responces,我今天新學到的東西^^那Arrays.deepToString(網格));是我沒有意識到的amasing工具,但是我仍然收到運行時錯誤。再次感謝您的回覆,並再次作出進一步的迴應:)。以上代碼中,建議進行了修訂,但運行時錯誤依然存在

回答

1

有幾件事情是你的代碼錯誤:

  • 你嵌套循環假設陣列是正方形(你迭代兩個維度到grid.length
  • 您初始化每一行後打印整個數組,並
  • 您打印陣列錯誤(Java數組傳遞給System.out.println時不打印其內容)

如果你的矩陣確實是正方形,那麼第一項是OK的。第二項很容易通過移動第二個嵌套循環之外的輸出來修復。

第三項是最難的。編寫一個採用二維數組的靜態方法是一個很好的練習,並用兩個嵌套循環逐元打印出來。如果您更願意使用系統功能,您還可以使用System.out.println(Arrays.deepToString(grid));

+0

實際上Arrays.toString不會幫助很多,Arrays.deepToString是正確的函數使用,它正確顯示多維數組,toString不完全。 – fvu

+0

@fvu修,謝謝! – dasblinkenlight

+0

嗨,謝謝你們的迴應,他們都是信息豐富的,並且稍微擴展了我對數組的知識,但是我仍然在我的代碼上收到運行時錯誤。我的問題已經修改,以反映您提供的一些建議 –

相關問題