2016-02-08 17 views
0

好吧,目前我有一個靜態的世界(不能調整大小)。 我想知道我怎麼可以轉換到這一個ArrayList,而不是我目前的狀況:將靜態「Level」數組轉換爲動態數組並繼續獲取XYZ座標

for(int xP = 0; xP < WORLD_SIZE_X; xP++) { 
     for(int zP = 0; zP < WORLD_SIZE_Z; zP++) { 
      for(int yP = 0; yP < WORLD_SIZE_Y; yP++) { 
      } 
     } 
    } 

我的問題是,如何才能讓被這樣我就可以使用

for(int i = 0; i < blocks.length; i++) {} 

但仍獲得[x] [y] [z]座標?

目前我使用該工具來獲取塊:

blocks[x][y][z]; 

我該如何獲得XYZ一個動態的ArrayList?

如果您需要更多信息,請告訴我。我很樂意幫助你瞭解我的情況。

回答

0

ArrayList的.length的等價物是.size(),其等效的[...].get(...)

也就是說,ArrayList<ArrayList<ArrayList<...>>>是一個相當笨拙的工作結構;儘管它在理論上是「動態的」,但在實踐中很難調整大小,因爲任何調整大小都會創建許多必須初始化的新元素。

如果你的目標只是爲了能夠在運行時指定的大小(但有大小保持後不變),那麼你可能會發現更容易堅持陣列,而是使用變量worldSizeXworldSizeYworldSizeZ而不是常量。