2012-07-04 14 views
1

在我的應用程序中,我希望有一個鍵是整數的字典。以int爲關鍵字的關聯數組

因爲它是一個整數,我使用正常Array

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

當我與for each迭代,沒問題,它通過這些2對象迭代。問題是,arr.length返回83 ...所以我必須創建一個變量來計算數字,因爲我修改數組。

問題1:是否有最佳做法(IE:以int爲關鍵字的關聯數組)?我猶豫了使用一個詞典。

問題2:Flash是否爲陣列的未使用桶分配內存?

+0

看看這個帖子http://stackoverflow.com/questions/2386781/get-size-of-actionscript-3-dictionary或者這個http://stackoverflow.com/questions/707354/calculating-dictionary- flex-length-in-flex –

+0

對不起你超出了範圍,我知道如何計算關聯數組的大小......這不是我的問題......我的問題是如何處理與int關聯,因爲我們可以和Array一起使用它們。 – tibo

+0

正是這些問題持有你的答案。基本上可以使用數組,對象或字典來實現相同的目的。關聯稀疏數組。 –

回答

3

Flash中的數組很稀疏(與Vector不同),因此不會分配空條目。如果您需要知道長度,您可能需要手動跟蹤它(也許會創建一個包裝類)。

Adob​​e表示:

數組是稀疏數組,這意味着有可能是在索引0和這兩個元素之間的索引位置的元素另一索引5,但一無所獲。在這種情況下,位置1到4的元素是未定義的,這表示沒有元素,不一定存在未定義值的元素。