这些要求的理想数据结构



我的游戏分为区域网格。每个区域都有其中的对象列表。每个对象可以在1个以上的区域(向上TP 4)。

当一个对象移动时,我检查它所在的区域,如果它们更改为"我"将它们从它们所在的区域中删除,并将它们添加到新的区域中。对象顺序并不重要。我需要快速插入和去除。我将永远不需要随机元素访问。

这是什么理想的数据结构?

在每个实体中:

HashSet<Region> regions;

在每个区域中:

HashSet<Entity> entities;

您的区域和实体应定义哈希码并正确地等于最佳性能。

当您的实体更改区域时,将其从旧区域中删除,然后再将区域从实体中删除,然后在将新区域添加到实体后将其添加到新区域。

迭代任一组很简单。您没有保证的迭代顺序,但是您说这没关系。HashSet插入/删除是恒定的时间,假设正确定义了hashcode并等于

for(Entity entity: entities) {
    // do something
}

与我相对应的4个指针的简单数组对我来说很好。

最新更新