这些要求的理想数据结构?

时间:2012-11-11 20:23:03

标签: java data-structures

我的游戏分为一个区域网格。每个区域都有一个对象列表。每个对象可以在多个区域内(向上tp 4)。

当一个物体移动时,我会检查它所在的区域,如果它们发生了变化,我将它们从它们所在的区域中移除并将它们添加到新区域。对象的顺序并不重要。我需要快速插入和移除。我永远不需要随机元素访问。

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

2 个答案:

答案 0 :(得分:1)

在每个实体中:

HashSet<Region> regions;

在每个地区:

HashSet<Entity> entities;

您的区域和实体应该正确定义hashCode并等于最佳性能。

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

迭代任一组都很简单。您没有保证的迭代订单,但您说没关系。并且HashSet插入/删除是恒定时间,假设正确定义了hashCode和equals。

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

答案 1 :(得分:0)

对应于每个区域的列表的4个指针的简单数组对我来说似乎很好。