不久前,我在 Android 平台上发布了一款完全用 Java 编写的游戏。目前我正在努力获得尽可能多的性能。在我的游戏案例中,问题似乎是我在可能更适合ArrayList
的地方更频繁地使用容器。Map
为了解释自己,我这样做是因为我害怕会在幕后触发的动态内存分配( Android 上的Map
/Tree
结构)。也许在我不知道的 Android/Java 平台上有某种结构,它将为我提供快速的搜索结果,并且在添加新元素时不会动态分配额外的内存?
更新:例如,我使用 ArrayList 结构来保存我游戏的大部分粒子。当然,独立(不是按顺序)删除它们是一件很痛苦的事情,因为系统需要遍历整个容器才能删除一个实体对象(当然是在最坏的情况下)。