我应该使用什么结构来存储这些对象?

时间:2010-12-12 14:32:40

标签: objective-c

我正在尝试实施类似于飞行控制游戏的东西。将会有一组对象代表随机生成和删除的平面。然后可以触摸单个飞机并进行响应。当触摸某些东西时,模型应该将平面索引作为参数。

我的存储要求是:

  1. 需要快速迭代所有元素
  2. 需要快速插入/删除
  3. 需要通过索引快速查找和项目

    • 我应该使用什么? NSMutableArrayNSMutableSet
    • 我应该将每个物品存放在两个地方吗? (例如,设置为快速迭代,数组用于快速查找)?

2 个答案:

答案 0 :(得分:1)

如果你只想通过索引查找,那么

NSMutableArray就足够了。问题可能是删除需要O(n)。当您不需要索引持久性时,您可以通过将最后一项放在已删除的项目中并在数组中将该数组缩短1来删除O(1)。

在这种情况下,存储在两个地方会很慢,因为它不会带来搜索速度的任何优势,但需要维护两个容器。

答案 1 :(得分:0)

存放在2个地方似乎很傻。一个数组应该没问题,有o(n)次迭代,o(1)按索引查找。我不熟悉objective-c来了解删除或插入速度,但如果使用某些系统级数组复制工具,两者都应该足够快。