• Dictionary字典类关联数组


    Dictionary的遍历

    使用 for..in 循环或 for each..in 循环来遍历 Dictionary 对象的内容。

    1.for..in 循环用于基于键进行遍历;

    2.for each..in 循环用于基于与每个键关联的值进行遍历,使用 for each..in 循环可以直接访问 Dictionary 对象的值。

    for (var key:Object in groupMap)
    {
        trace(key, groupMap[key]);
    }
                
    for each (var item:Object in groupMap)
    {
        trace(item);
    }
    /*
    output
    [object Sprite] [object Object]
    [object Sprite] [object Object]
    [object Sprite] [object Object]
    [object Object]
    [object Object]
    [object Object]
    */


    groupMap初始化:

    var groupMap:Dictionary = new Dictionary();
    //
    objects to use as keys var spr1:Sprite = new Sprite(); var spr2:Sprite = new Sprite(); var spr3:Sprite = new Sprite(); // objects to use as values var groupA:Object = new Object(); var groupB:Object = new Object(); // Create new key-value pairs in dictionary. groupMap[spr1] = groupA; groupMap[spr2] = groupB; groupMap[spr3] = groupB; if (groupMap[spr1] == groupA) {   trace("spr1 is in groupA"); } if (groupMap[spr2] == groupB) {   trace("spr2 is in groupB"); } if (groupMap[spr3] == groupB) {   trace("spr3 is in groupB"); }

    对象键和内存管理

    var myObject:Object = new Object();
    var myMap:Dictionary = new Dictionary();
    myMap[myObject] = "foo";

    利用myObject作为键时,会复制一个myObject引用,两个引用同时指向同一个对象。

    若要使 myObject 引用的对象能够进行垃圾回收,您必须删除对它的所有引用。在此情况下,必须更改 myObject 的值并从myMap 中删除 myObject 键,如以下代码所示:

    myObject = null;
    delete myMap[myObject];

    或者可以使用 Dictionary 构造函数的 useWeakReference 参数,以使所有字典键均成为“ 弱引用”。

    var myMap:Dictionary = new Dictionary(true);


     

  • 相关阅读:
    Codeforces Round #547 F1&F2. Same Sum Blocks(贪心)
    Codeforces Round #547 D. Colored Boots(贪心)
    Codeforces Round #547 C. Polycarp Restores Permutation(二分枚举/数学+模拟)
    CCF 201812-4 数据中心(最小生成树)
    CCF【小明放学&小明上学】
    TIME_WAIT状态
    ping的详细过程
    两段不相邻子段和之和最大
    神水一题之“Who's in the Middle”
    日进一步之“A Knight's Journey”
  • 原文地址:https://www.cnblogs.com/sdlwlxf/p/2824342.html
Copyright © 2020-2023  润新知