矢量1:1数据结构

时间:2013-11-07 15:12:45

标签: actionscript-3 data-structures

我需要通过id获取东西。我决定使用矢量/数组初始化东西。所以我只使用:

array[id];

我正在通过id获取它们!但是一个问题是设置值。假设我正在插入id <1000> 的对象

array[1000] = myobj;

显然这会返回错误。

有什么好办法可以解决这个问题?另一个数据结构?或者我应该将数组元素初始化为null(以及最好的方法是什么,禁止循环?)

我知道要插入多少元素。

2 个答案:

答案 0 :(得分:1)

如果您提前知道“max”id值,则可以将数组分配给“max”+1,但如果您的ID很稀疏,则可能会浪费大量空间。另一种方法是使用地图数据结构。

我对动作脚本知之甚少,但看起来它有一个地图集: http://www.adobe.com/devnet/actionscript/learning/as3-fundamentals/associative-arrays.html

答案 1 :(得分:0)

AS3中的

Array由两个经典数据结构ArrayHashMap组成。当您按整数键按顺序编写对象时,Array正在使用,HashMap在您按String键或带有间隙的整数键(例如array[0]=1, array[2]=2)编写对象时使用1 }将被放置到Array2将被放置到HashMap)。你的情况是2号。

您可以使用Object类,它是带有字符串键的AS3 HashMap实现,或Dictionary类型为Object的键。

我在我的项目中使用自己的数据结构ItemSet - Array(用于计算集合大小和对象索引)和Object(用于按其id存储对象)的组合。 / p>