【发布时间】:2013-05-07 02:15:38
【问题描述】:
我在基于 box2d 的游戏中实现了一个简单的池化系统,以生成/消除/预池化所有对象。所讨论的对象都是在设定半径处创建的所有圆。例如当我进行预池化时,我会创建 10 x 2m、5 x 5m、5 x 10m 的圆圈。
现在我正在使用一个简单的链表来存储池对象,因此当我需要获取半径为 x 的对象时,可能需要到列表末尾才能找到具有正确半径的主体,或者根本找不到。这显然很麻烦,而且当我汇集更多对象时只会变得更糟。
我正在考虑使用哈希表,因此我可以使用半径作为哈希键并快速访问正确的对象,但我担心半径值会因值和使用它们的对象数量而有很大差异。例如我可能在 2m 处有 50 个哈希值,在 100m 处有 5 个哈希值,这会造成大量空间浪费,对吧?
我没有使用数据结构的经验,我想了解更多信息,那么哪种类型的数据结构最适合有效处理这样的系统?为什么?
谢谢!
【问题讨论】:
标签: arrays data-structures hashtable box2d pool