Flex中Object,Array,Dictionary的对比

Object,Array,Dictionary从功能上看上去差距很大,但在索引上也如在狐仙眼中刘海与牛郎一样有的一比。

功能相同点:

 能存储数据

类型  示例
Object

var obj:Object = {};

obj["field"]="data";

Array 

var arr:Array = [];

arr.push({data:1,label:"zh_CN"});

Dictionary

var key:Key = new Key();

var dict:Dictionary = new Dictionary(true);

dict[key] = {data:1,label:"zh_CN"};

由存储数据引发了一些不同点。

1. 存储数据时,使用的键的类型不同

类型  键类型 示例
Object

字符串

obj["key"]={};

obj.key = {};

Array  整形

trace(array[0])

Dictionary 对象Object

var key:Key = new Key;

dict[key] = {};

2. 遍历方式的差异

类型  遍历方式
Object

for(var str:String in obj)

{

  trace(obj[str]);

}

Array

for(var i:int = 0; i < array.length ;i++)

{

  trace(array[i]);

}

Dictionary

for (var key:* in dict)

{   
       trace(key+":"+dict[key]); 
}

3 使用for each来遍历。

使用for each的优点是,我们不必知道键值,即可遍历。

类型 示例
Array

for each(var obj:Object in array)

{

  trace(obj);

Dictionary

var dict:Dictionary = new Dictionary(true);
 var key1:Object = {data:1};
 var key2:Object = {data:2};
                
   dict[key1] = {label:"data1"};
 dict[key2] = {label:"data2"};
                
   for each(var obj:Object in dict)
   {
         trace(obj.label);  //如果使用trace(obj.data);

    //则会显示undefined
   }

引用连接:

http://blog.csdn.net/nsrainbow/article/details/6839497

 

posted @ 2013-04-11 10:53  Jack Tao  阅读(266)  评论(0编辑  收藏  举报