关联数组,以int作为键

时间:2012-07-04 08:09:40

标签: actionscript-3 flex flex3

在我的应用程序中,我希望有一个字典,其中键是整数。

由于它是一个整数,我使用普通Array

var arr : Array = [];
arr[5] =  anObject;
arr[82] =  anOtherObject;

当我使用for each进行迭代时没问题,它会迭代这两个对象。问题是arr.length返回83 ...所以我必须创建一个变量,在我修改数组时计算数字。

问题1:是否有最佳实践(IE:以int作为键的关联数组)?我犹豫要使用Dictionnary。

问题2:flash是否为数组中未使用的桶分配内存?

1 个答案:

答案 0 :(得分:3)

flash中的数组是稀疏的(与Vector不同),因此不会分配空条目。如果你需要知道长度,你可能需要手动跟踪它(也许做一个包装类)。

Adob​​e说:

  

数组是稀疏数组,意味着索引0处可能有一个元素,索引5处可能存在另一个元素,但这两个元素之间的索引位置没有任何内容。在这种情况下,位置1到4中的元素是未定义的,这表示没有元素,不一定存在值未定义的元素。