Java:用于存储无限游戏世界的坐标图的良好数据结构是什么?

Java:用于存储无限游戏世界的坐标图的良好数据结构是什么?,第1张

Java:用于存储无限游戏世界的坐标图的良好数据结构是什么?

我遇到了同样的问题,但是我的解决方案是使用Map /
HashMaps
,但是它们是一维的。

为了克服这个问题,我使用了通用的Pair类(不是在普通的Java库中会找到的东西),而不是在地图中使用地图(这会造成混乱和效率低下),尽管您可以将其替换为Position类。
(实际上是相同的代码,但不是通用代码,而是整数或浮点数)。

因此,在定义地图时:

Map<Pair, Tile> tiles = new HashMap<Pair, Tile>;

为了将瓷砖对象放置在我所使用的地图上

tiles.put(new Pair(x, y), newGrassTile());
以及检索对象
tiles.get(new Pair(x, y));

[x / y将是您希望放置的任何坐标( 这将允许负坐标 而不会造成任何混乱!),“ new
GrassTile()”只是在地图创建过程中放置​​某种类型的图块的示例。显然-如前所述-Pair类是可替换的。]

为什么不问您的ArrayList?因为数组列表比映射更线性,而且我认为添加和检索图块更加困难,尤其是在2维上。

更新:

对于想知道为什么Java中没有Pair()类的人,这里有一个解释。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5133452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存