Я пришел к этой теме с той же проблемой, но мое решение было использовать Map / HashMaps , но это одномерные.
Чтобы преодолеть это, вместо использования карты на карте (которая была бы грязной и очень неэффективной), я использовал общий класс Pair (не тот, который вы найдете в запасе).библиотека Java), хотя вы можете заменить это классом Position (практически тот же код, но не универсальный, а целые числа или числа с плавающей запятой).
Итак, при определении карты: Map<Pair, Tile> tiles = new HashMap<Pair, Tile>;
Для размещения плиточных объектов на карте я использовал tiles.put(new Pair(x, y), new GrassTile());
и для извлечения объекта tiles.get(new Pair(x, y));
.
[x / y будет любой координатой, которую вы хотите разместить ( это позволяет отрицательным координатам без каких-либо беспорядков!), "New GrassTile ()" является просто примером размещения плиткиопределенный тип при создании карты.Очевидно, что, как указывалось ранее, класс Pair является заменяемым.]
Почему вы не спросите ArrayLists?Поскольку списки массивов намного более линейны, чем отображение, и, на мой взгляд, сложнее добавлять и извлекать плитки, особенно в 2 измерениях.
Обновление:
Для всехинтересно, почему в Java нет класса Pair (), вот объяснение .