0

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

array[id];

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

array[1000] = myobj;

显然这会返回一个错误。

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

我知道要插入多少个元素。

4

2 回答 2

1

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

我对 actionscript 了解不多,但它看起来有一个地图集合: http: //www.adobe.com/devnet/actionscript/learning/as3-fundamentals/associative-arrays.html

于 2013-11-07T15:18:57.673 回答
0

Array在 AS3 中是由两个经典数据结构ArrayHashMap. Array用整数键按顺序HashMap写入对象时使用,用字符串键或带间隙的整数键写入对象时使用(例如array[0]=1, array[2]=2,此处1将放置到Array并将2放置到HashMap)。你的情况是2号。

您可以使用类,它是带有 String 键或带有 type 键Object的 AS3实现。HashMapDictionaryObject

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

于 2013-11-07T15:34:02.013 回答