我想定義一個網格,其中爲網格中的每個點指定一個(x,y)座標。所以我想要做這樣的事情:定義一個數組並傳遞每個點的2個值?
int [][] pt;
for (x=0; x<numX; x=x+1) {
for (y=0; y<numY; y=y+1) {
pt[x][y] = {xval, yval};
}
}
之所以是因爲我將有序網格的值映射到無序網格。上述代碼當然會導致異常(意外的令牌「{」)。
什麼是最好的方式來做我想做的事情?謝謝。
我想定義一個網格,其中爲網格中的每個點指定一個(x,y)座標。所以我想要做這樣的事情:定義一個數組並傳遞每個點的2個值?
int [][] pt;
for (x=0; x<numX; x=x+1) {
for (y=0; y<numY; y=y+1) {
pt[x][y] = {xval, yval};
}
}
之所以是因爲我將有序網格的值映射到無序網格。上述代碼當然會導致異常(意外的令牌「{」)。
什麼是最好的方式來做我想做的事情?謝謝。
兩件事情:
初始化您的數組像這樣(如果你沒有)
int[][] pt = new int[numX][numY];
要存儲陣列中兩個值,您將需要使用的對象。 java Point類將是您可以使用的一個示例
Point[][] pt = new Point[numX][numY];
for (x=0; x<numX; x=x+1) {
for (y=0; y<numY; y=y+1) {
pt[x][y] = new Point(xval, yval);;
}
}
是的,我只是沒有在初始化時顯示代碼。但我不知道關於點的課程。謝謝,這是一個很好的解決方案! – lynvie
你基本上想要在每個數組單元格中存儲固定數量的值嗎? 然後你被限制使用2大案要案:
long
)。 (你必須非常小心,這裏)int
s爲32位,這樣你就可以在1 long
包2 int
秒。
這很聰明!但我認爲上面提到的Point類會更強大。 – lynvie
@lynvie速度和內存使用效率都較低。 –
pt[x][y] = {xval, yval}
是非法的,pt[][]
是一個二維數組。它只能存儲一個值。就像這樣pt[x][y] = value
你可以試試java地圖。
我不確定您要做什麼。你爲什麼試圖將座標存儲在相同的索引處? xval和yval從哪裏來? –
你必須把[x] [y]中的一個值,這就是爲什麼抱怨,如果你想把一個元組考慮使用另一種數組類型 – nachokk