2016-02-08 1 views
0

Хорошо, так что в настоящее время у меня есть статический мир (нельзя изменить размер). Я хотел бы знать, как я могу преобразовать это в ArrayList вместо моей нынешней ситуации:Преобразование статического массива «уровень» в динамический и все еще получить координаты 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<...>>> - довольно громоздкая структура для работы; и хотя это теоретически «динамический», на практике его трудно изменить, поскольку любое изменение размеров требует создания новых элементов, которые вы должны инициализировать.

Если ваша цель просто быть в состоянии определить размер во время выполнения (но имеют размер остаются неизменными после этого), то вы можете найти его проще придерживаться с массивами, но с использованием переменных worldSizeX и worldSizeY и worldSizeZ, а не константы.