gpt4 book ai didi

java - 存储对象的 2D 网格

转载 作者:行者123 更新时间:2023-12-01 10:52:15 25 4
gpt4 key购买 nike

我正在创建一个游戏,其中有 Tile 对象的 2D 网格。每个 Tile 对象都有许多实例变量,其中包含 TowerView 等对象。

我目前正在将此网格实现为从 Point (awt) 到 Tile 对象的 HashMap。这是实现网格的好方法吗?这使我无法映射还没有 Tile 对象的某些点。

另一种选择是使用Tile[][],但这需要为整个网格预先分配足够的内存,即使不存在图 block ,对吧?

这两个也存储在堆上,但我想知道两种实现之间的性能/空间差异。

最佳答案

两种解决方案( HashMap<Point, Tile>new Tile[200][200] )都可以工作。我想我会选择更简单的解决方案(数组),除非你有充分的理由认为内存是一个问题。你是对的new Tile[200][200]即使没有 Tile 也会为整个网格分配内存s。记住HashMap需要大量内存,因为每个键/值对都包装在 Entry 中对象,因此除非网格稀疏,否则 map 解决方案可能不会节省内存。

关于java - 存储对象的 2D 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33794131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com